目录
[1.1 创建容器](#1.1 创建容器)
[1.1.1 类路径下的XML配置文件](#1.1.1 类路径下的XML配置文件)
[1.1.2 文件系统下的XML配置文件](#1.1.2 文件系统下的XML配置文件)
[1.2 获取bean](#1.2 获取bean)
[1.2.1 使用baen名称获取](#1.2.1 使用baen名称获取)
[1.2.2 使用bean名称+指定类型](#1.2.2 使用bean名称+指定类型)
[1.2.3 使用bean类型获取](#1.2.3 使用bean类型获取)
[1.1 注解开发bean](#1.1 注解开发bean)
[1.2 纯注解开发](#1.2 纯注解开发)
[4.1 按类型注入bean](#4.1 按类型注入bean)
[4.2 按名称注入bean](#4.2 按名称注入bean)
[4.3 使用@value进行简单类型注入](#4.3 使用@value进行简单类型注入)
[4.4 注解读取properties配置文件](#4.4 注解读取properties配置文件)
前言:Spring炼气之路(炼气二层)-CSDN博客
一、容器的介绍
1.1 创建容器
创建容器有两种方式,类路径下的XML配置文件和文件系统下的XML配置文件
1.1.1 类路径下的XML配置文件
java
ApplicationContext actx = new ClassPathXmlApplicationContext("applicationContext.xml");
1.1.2 文件系统下的XML配置文件
java
ApplicationContext ctx = new FileSystemXmlApplicationContext("applicationContext.xml文件的绝对路径");
1.2 获取bean
bean的三种获取方式
1.2.1 使用baen名称获取
java
BookDao bookDao = (BookDao) actx.getBean("bookDao");
1.2.2 使用bean名称+指定类型
java
BookDao bookDao = actx.getBean("bookDao",BookDao.class);
1.2.3 使用bean类型获取
java
BookDao bookDao = actx.getBean(BookDao.class);
二、注解开发
1.1 注解开发bean
第一步:在需要注解的类上加上@Component
java
@Component("bookDao")
public class BookDaoImpl implements BookDao {}
第二步:在applicationContext.xml配置文件中进行包扫描
html
<context:component-scan base-package="com.zhang.dao.impl" />
注: 对于@Component注解,还衍生出了其他三个注解
表现层: @Controller
业务层 @Service
数据层 : @Repository
1.2 纯注解开发
使用Java类替代配置文件
步骤:
①第一步:创建配置java类
java
public class SpringConfig {}
②第二步:添加@Configuration注解替换applicationContext.xml,表示这是一个配置类
java
@Configuration
public class SpringConfig {}
③第三步:在配置类上添加包扫描注解@ComponentScan
java
@Configuration
@ComponentScan("com.zhang")
public class SpringConfig {}
在这种模式下,如何初始化容器?
java
//加载配置类初始化容器
ApplicationContext ctx = new AnnotationConfigApplicationContext(SpringConfig.class);
三、注解开发之bean的管理
3.1 bean的作用范围注解
@Scope设置bean的作用范围
3.2 bean的生命周期注解
@PostConstruct初始化方法
@PreDestroy 销毁方法
四、注解开发之自动装配
4.1 按类型注入bean
使用@Autowired **(按类型注入)**注解
注: @Autowired可以写在属性上,也可也写在setter方法上。
4.2 按名称注入bean
使用@Autowired+@Qualifier 注解
注: @Qualifier不能独立使用,必须和@Autowired一起使用
4.3 使用@value进行简单类型注入
java
@Value("zhang")
private String name;
4.4 注解读取properties****配置文件
**①:**在配置类上添加@PropertySource注解
②:通过${ } 读取properties配置文件的简单类型数据
java
@Value("${name}")