JavaEE开发框架SSM 002Spring简介

    xiaoxiao2025-06-06  14

    Spring下载地址:https://repo.spring.io/release/org/springframework/spring/4.3.6.RELEASE/spring-framework-4.3.6.RELEASE-dist.zip

    common.logging.jar 下载地址: http://commons.apache.org/proper/commons-logging/download_logging.cgi

    tomcat7.0下载地址:https://tomcat.apache.org/download-70.cgi

     

    Spring的两个核心包含AOP和IOC,在表现层整合Spring MVC,在业务逻辑层,整合事务和日志等,在持久层整合Hibernate,Mybatis,JPA等。


     

    Spring体系

     


     

    Spring初学使用包

    spring-core-4.3.6.RELEASE.jar

    spring-beans-4.3.6.RELEASE.jar

    spring-context-4.3.6.RELEASE.jar

    spring-expression-4.3.6.RELEASE.jar

    commons-logging-1.2.jar


     

    Spring核心容器

     

    1. BeanFactory

    使用Bean工厂管理初始化等操作,并调用其生命周期。通常使用xml进行相关的配置。

    创建一个XmlBeanFactory对象读取xml配置文件初始化BeanFactory

     

    2. ApplicationContext

    ApplicationContext是BeanFactory的子接口,称为应用上下文。

    一般对于ApplicationContext接口的实例化使用两种方法:

    a 读取类路径下的xml文件进行初始化(常用)

    ApplicationContext context = new ClassPathXmlApplicationContext(string xmlConfigLocation);

    b 读取指定目录下的xml文件进行初始化

    ApplicationContext context = new FileSystemXmlApplicationContext(string xmlConfigLocation);

    通常,第一种实例化方式更加常用。

    在Java项目中,常常使用ClassPathXmlApplicationContext进行实例化容器,在Web项目中,常常交给web服务器进行,基于ContextLoaderListener进行实现,我们只需要在web.xml文件中配置以下语句即可。

    <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring/applicationContext.xml<param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>

     

    Spring使用示例

     

    1. 导入开发所需要的包并右键添加到buildPath

    2. 在src目录下创建com.learn.ioc包

     

    3. 在包下创建一个UserDao测试接口

    4. 创建一个UserDao的实现类UserDaoImpl

    5. 在src目录下创建一个配置文件applicationContext.xml,并将实现类配置到bean中

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd"> <bean name="userDao" class="com/learn/ioc/UserDaoImpl.java"></bean> </beans>

    6.创建测试代码,测试bean的管理效果

     

    7. 查看控制台输出

     


     

    依赖注入

     

    依赖注入DI与IOC控制反转其实是一个意思,只不过是一件事从两个方向说罢了。

    传统的应用开发,我们经常new一个对象出来,然后再去使用,这样会造成侵入性很强,类与类之间过度依赖,也不利于测试。

    使用DI就是,你什么时候用的时候跟Spring容器说一声,他帮你注入进去,你就得到了。

    使用IOC是从容器的角度去说的,原来调用的控制是代码进行的,现在变成了使用容器进行控制,这就达到了控制反转的目的。


     

    依赖注入方法

     

    常见的是两种注入方法:

    1. setter方法

    在类内定义一个变量,使用set方法将Bean注入到类中,赋值给这个预先定义的变量,就得到了注入的实例。

    需要在applicationContext中注册一下这个UserDao:

    <bean id="userService" class="com.itheima.ioc.UserServiceImpl"> <property name="userDao" ref="userDao"/> </bean>

    使用property属性注入的bean是通过setter方法进行注入的方式。

    2. 构造方法

    用过构造函数进行注入。


     

    属性依赖注入示例

     

    1. 创建Service接口

    2. 创建实现类

    3. 修改配置文件

    4. 测试

     

    5. 测试结果


     

    构造器依赖注入示例 

     

    1. 创建接口方法

    2.创建实现类

    3. 修改配置

    4. 测试

    5. 结果

    最新回复(0)