1. 介绍
之前我们写的bean都是基于xml配置,而这文章是基于java 注解去实现创建bean,首先我们需要在之前的xml当中添加两个dtd
xmlns:context 和 xsi:schemaLocation
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
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
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
</beans>
2.配置
只要对你需要添加注解创建bean的包进行扫描就可以了
<context:component-scan> 其中属性,base-package就写需要扫描的包全限路径即可
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
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
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package="com.test.spring.annotation"></context:component-scan>
</beans>
3.注解讲解
- 创建基本bean: @Component, 以下三种类型跟Component一样,只是叫法不一样而已
- @Service
- @Controller
- @Repository

- 注入:三种不同的注入方式
- @Autowired:以类型注入,意思就注入相同类型的实现类,这会有缺点,就会当有多个实现了相同接口的对象,就不知道注入谁了

- @Autowired+@Qualifier: 就是制定那个实现bean注入

- @Resource: 已名称注入

-
- 第四种是可以在setter方法上使用以上三种注解

- 设普通值:@Value

完整类
@Component("userService")
public class UserServiceImpl implements UserService{
/**
* 第一种方式 注入
*/
@Autowired
private UserDao userDao_1;
/**
* 第二种方式 注入
*/
@Autowired
@Qualifier("userDao")
private UserDao userDao_2;
/**
* 第三种方式 注入
*/
@Resource("userDao")
private UserDao userDao_3;
private UserDao userDao_4;
/**
* 第四种方式 注入
*/
@Autowired
@Qualifier("userDao")
public void setUserDao_4(UserDao userDao_4) {
this.userDao_4 = userDao_4;
}
/**
* 基本类型
*/
@Value("Peter")
public String name;
public void addUser() {
userDao_1.saveUser();
userDao_2.saveUser();
userDao_3.saveUser();
userDao_4.saveUser();
}
public String toString() {
return name;
}
}
来源:https://www.cnblogs.com/oscar1987121/p/10879742.html