1. Spring 管理第三方资源
-
导入Druid 坐标
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.16</version>
</dependency>
<dependency> -
配置数据源对象作为Spring管理的bean
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/myabtis"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</bean>
2. 加载properties文件
-
开启context命名空间
-
使用context命名空间,加载指定的properties文件
<context:property-placeholder location="classpath:jdbc.properties"/>
-
使用${}读取加载的属性值
<property name="driverClassName" value="${jdbc.driver}"/>
-
加载方式
-
不加载系统属性
<context:property-placeholder location="classpath:jdbc.properties" system-properties-mode="NEVER"/>
-
加载多个properties文件
<context:property-placeholder location="jdbc.properties,msg.properties"/>
-
加载所有properties文件
<context:property-placeholder location="*.properties"/>
-
加载properties文件标准格式
<context:property-placeholder location="classpath:*.properties"/>
-
从类路径或jar包中搜索并加载properties文件
<context:property-placeholder location="classpath*:*.properties"/>
-
3. 容器
创建容器
-
方式1:类路径加载配置文件(常用)
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
-
方式2:文件路径加载配置文件
ApplicationContext context = new FileSystemXmlApplicationContext("D:\\applicationContext.xml");
-
加载多个配置文件
ApplicationContext ctx = new ClassPathXmlApplicationContext("bean1.xml","bean2.xml");
获取bean
-
方式1:使用bean名称获取
BookDao bookDao = (BookDao) context.getBean("bookDao");
-
方式2:使用bean名称获取并指定类型
BookDao bookDao = context.getBean("bookDao",BookDao.class);
-
方式3:使用bean类型获取
BookDao bookDao = context.getBean(BookDao.class);
核心容器总结
bean相关
依赖注入相关
4. 注解开发
4.1 注解开发定义bean
-
使用@Component定义bean
-
核心配置文件中通过组件扫描加载bean
4.2 纯注解开发模式
-
Spring3.0开启了纯注解开发模式,使用Java类替代配置文件,开启了Spring快速开发赛道
-
Java类代替了Spring核心配置文件
-
@Configuration注解用于设定当前类为配置类
-
@ComponentScan注解用于设定扫描路径,此注解只能添加一次,多个数据请用数组格式
-
读取Spring核心配置文件初始化容器对象切换为读取Java配置类初始化容器对象
4.3 注解开发bean作用范围与生命周期管理
Bean作用范围
-
使用@Scpoe定义bean作用范围(prototype:非单例模式 singleton:单例(默认))
-
使用@PostConstruct、@PreDestroy定义bean生命周期
4.4 注解开发依赖注入
自动装配
-
使用@Autowired注解开启自动装配模式(按类型)
-
使用@Qualifier注解开启指定名称装配bean
-
使用@Value实现简单类型注入
-
注意:
-
自动装配基于反射设计创建对象并暴力反射对应属性为私有属性初始化数据,因此无需提供setter方法
-
自动装配建议使用无参构造方法创建对象(默认),如果不提供对应构造方法,请提供唯一的构造方法
-
@Qualifier注解无法单独使用,必须配合@Autowired注解使用
-
加载properties文件
-
使用@PropertySource注解加载properties文件
-
注意:路径仅支持单一文件配置,多文件使用数组格式配置,不允许使用通配符*
4.5 注解开发管理第三方bean
-
使用@Bean配置第三方bean
-
将独立的配置类加入核心配置
-
方式1:导入式(建议使用)
-
使用@Import注解手动加入配置类到核心配置,此注解只能添加一次,多个数据请用数组格式
-
方式2:扫描式
-
使用@ComponentScan注解扫描配置类所在的包,加载对应的配置类信息
-
4.6 注解开发实现为第三方bean注入资源
-
简单类型依赖注入
-
引用类型依赖注入
-
引用类型注入只需要为bean定义方法设置形参即可,容器会根据类型自动装配对象
XML配置比对注解配置
5. Spring整合mybatis
-
SqlSessionFactoryBean
-
MapperScannerConfigurer
6. Spring整合JUnit
-
使用Spring整合Junit专用的类加载器
-
@RunWith(SpringJUnit4ClassRunner.class):设置类运行器
-
@ContextConfiguration():设置当前项目的Spring配置类
-