基于注解方式实现属性注入
基于注解方式实现属性注入
(1)@Autowired:根据属性类型自动注入(不用创建set方法来注入,注解里都封装好了)
演示:第一步把service和dao对象创建,在service和dao类添加创建对象
第二步:在service注入dao对象,在service类中添加dao类属性,service类中不需要加set方法来帮助注入
在属性上添加注入属性的注解@Autowired
(2)@Qualifier:根据属性名称注入
@Qualifier这个注解要和上面的@Autowired一起使用,因为为了在可能一个接口类有多个实现类,
这样只单单用@Autowired不能去分辨到底是哪个具体实现类,但是@Qualifier(value=“”)这个value可以指定某一个具体实现类,只要在那四种创建类的注解后面加入例如@Repository(value="类名的头字母小写"),然后
@Qualifier(value="类名的头字母小写")即可指定具体类
(3)@Resource:可以根据类型注入,也可以根据名称注入
这三种注解实现属性注入(这三种注解都是针对对象类型注解并不是普通数据类型)
@Resource注解方式注入属性
这里要与上面的@Qualifier注解区分一下,@Qualifier里的属性是value,而@Resource里的属性是name
但是里面的值都是同一个,都是同一个,官方不建议用@Resource
(4)@Value:这个注解是针对普通数据类型
这里讲解注入普通属性的注解@Value
@Value(value = "abc")//@Value注解里有一个属性value,他的值可以注入到name中
private String name;
下面讲一下纯注解开发:
首先创建配置类,用它来替代xml配置文件,在配置类中加入注解@Configuration,可以表示这个类是配置类
可以替代XML配置文件
@Configuration
@ComponentScan(basePackages = {"com.atguigu.Springdemo"})
public class SpringConfig {
}
2.其他没有变化
测试时
一般开发不用Spring的完全注解开发,而是用SpringBoot