hooyantsing's Blog

P20 - P24 IOC容器-Bean管理注解方式

字数统计: 642阅读时长: 2 min
2022/05/30

视频源:尚硅谷Spring框架视频教程(spring5源码级讲解)

IOC 操作 Bean 管理(基于注解方式)

P20

1. 什么是注解

2. Spring 针对 Bean 管理中创建对象提供注解

  1. @Component
  2. @Service
  3. @Controller
  4. @Repository

不同名称是用于角色区分,上面四个注解功能一样,都可以创建 Bean 实例。

3. 基于注解方式实现对象创建

Step 01 引入依赖

spring-aop-5.2.6.RELEASE.jar

Step 02 开启组件扫描

在 spring 配置文件中引入命名空间 context

1
2
xmlns:util="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/context http://www.springframework.org/schema/util/spring-context.xsd"

开启组件扫描

1
2
3
4
5
6
7
<!-- 
如果扫描多个包
Method 01:多个包使用逗号隔开;
Method 02:扫描包上层目录。
-->

<context:component-san base-package="com.atguigu.service,com.atguigu.dao"></context:component-san>

Step 03 创建类,在类上面添加创建对象注解

1
2
3
4
5
6
7
// 注解里面 value 属性值可以省略不写,默认值是类名称首字母小写
@Component(value = "userService") // <bean id="userService" class="..."></bean>
public class UserService {
public void add() {
// more code ...
}
}

4. 开启组件扫描细节配置

P21

spring 配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!--
[包括]
use-default-filters="false" 表示不使用默认filter,不扫描全部
eg:只包括使用了 @Controller 注解(annotation)的类。
-->
<context:component-scan base-package="com.atguigu" use-default-filters="fasle">
<context:include-filter type="annotation" expression="org.springframework.sterotype.Controller"/>
</context:component-scan>

<!--
[排除]
eg:只排除使用了 @Controller 注解(annotation)的类。
-->
<context:component-scan base-package="com.atguigu">
<context:exclude-filter type="annotation" expression="org.springframework.sterotype.Controller"/>
</context:component-scan>

5. 基于注解方式实现属性注入

P22

  1. @Autowired:根据属性类型自动注入;

    1
    2
    @Autowired
    private UserDao userDao;
  2. @Qualifier:根据属性名称自动注入,要和 @Autowired 一起使用;

    1
    2
    3
    @Autowired
    @Qualifier(value = "userDaoImpl1")
    private UserDao userDao;
  3. @Resource:可以根据属性类型自动注入,也可以根据属性名称自动注入;

    1
    2
    3
    @Resource // 根据类型进行注入
    @Resource(name = "userDaoImpl1") // 根据名称注入
    private UserDao userDao;
  4. @Value:注入普通类型属性。

    1
    2
    @Value(value="abc")
    private String name;

6. 完全注解开发

P23

Step 01 创建配置类,替代 xml 配置文件

1
2
3
4
5
@Configuration // 作为配置类,替代xml配置文件
@ComponentScan(basePackages = {"com.atguigu"})
public class SpringConfig {

}

Step 02 编写测试类

1
2
3
4
5
6
@Test
public void testService2() {
// 加载配置类
ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);
UserService userService = context.getBean("userService",UserService.class);
}
CATALOG
  1. 1. IOC 操作 Bean 管理(基于注解方式)
    1. 1.1. 1. 什么是注解
    2. 1.2. 2. Spring 针对 Bean 管理中创建对象提供注解
    3. 1.3. 3. 基于注解方式实现对象创建
    4. 1.4. 4. 开启组件扫描细节配置
    5. 1.5. 5. 基于注解方式实现属性注入
    6. 1.6. 6. 完全注解开发