Autowired与 Resource的区别
1、Autowired与Resource都是要装配bean
Autowired是通过byType来注入 Resource是同通过byName来注入
一、Autowired
Autowired默认是按类型(type也就是参数化类型)装配(这个注解是属于spring的),默认情况下Autowired要求依赖对象必须存在,如果想要允许他空值也就是null 可以设置它的required属性为false 格式为:@Autowired(required=false),如果我们想使用名称装配可以结合@Qualifier注解进行使用,如下:
@Autowired` `()` `@Qualifier` `(` `"baseDao"` `)``private` `BaseDao baseDao;
二、Resource
@Resource(这个注解属于J2EE的),默认按照名称进行装配,名称可以通过name属性进行指定,如果没有指定name属性,当注解写在字段上时,默认取字段名进行安装名称查找,如果注解写在setter方法上默认取属性名进行装配。当找不到与名称匹配的bean时才按照类型进行装配。但是需要注意的是,如果name属性一旦指定,就只会按照名称进行装配。用这个注解是因为不用写set方法,减少与spring的耦合
三、Value
@Value(“${}”):value的格式
value注解的作用是将我们配置文件的属性读出来
四、Builder
builder它的作用就是在你使用的地方生成一个构造器与this方法
this就是区分全局与形参 然后this就是选择比较远的那个也就是全局
五、有参构造与无参构造
-
构造方法的使用是用类名 构造函数也是与类名相同
-
也就是说构造就是跟类名相同的方法或者函数
-
还有就是如果类中没有构造函数那么你的类自带一个无参构造
-
构造函数不能有返回值g
-
有参构造就是有参数也就是有值的构造方法或者构造函数
-
无参构造就是没有参数也就是没有值的构造方法或者构造函数
六、启动类注解
@SpringBootApplication
启动类为什么叫这个名字就是因为 springboot框架后面加的是你的默认的配置类 application也就是程序的入口
启动类的8个注解就是为了扫描你的所有包就是所有的Bean就是容器 因为类默认有Bean
七、自动装配原理
byType(类型)通过类型来扫描bean
byName(名称) 通过名称来扫描bean
constructor(构造器)通过构造来扫描bean 包括构造函数与构造方法
基于注解的自动装配有三种
@Autowired @Resource @Value