Spring的炼气之路(炼气三层)

目录

一、容器的介绍

[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 纯注解开发)

三、注解开发之bean的管理

四、注解开发之自动装配

[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}")
相关推荐
智慧老师24 分钟前
Spring基础分析13-Spring Security框架
java·后端·spring
lxyzcm26 分钟前
C++23新特性解析:[[assume]]属性
java·c++·spring boot·c++23
V+zmm101341 小时前
基于微信小程序的乡村政务服务系统springboot+论文源码调试讲解
java·微信小程序·小程序·毕业设计·ssm
Oneforlove_twoforjob1 小时前
【Java基础面试题025】什么是Java的Integer缓存池?
java·开发语言·缓存
xmh-sxh-13141 小时前
常用的缓存技术都有哪些
java
AiFlutter2 小时前
Flutter-底部分享弹窗(showModalBottomSheet)
java·前端·flutter
J不A秃V头A2 小时前
IntelliJ IDEA中设置激活的profile
java·intellij-idea
DARLING Zero two♡2 小时前
【优选算法】Pointer-Slice:双指针的算法切片(下)
java·数据结构·c++·算法·leetcode
小池先生3 小时前
springboot启动不了 因一个spring-boot-starter-web底下的tomcat-embed-core依赖丢失
java·spring boot·后端
CodeClimb3 小时前
【华为OD-E卷-木板 100分(python、java、c++、js、c)】
java·javascript·c++·python·华为od