Spring入门-注解Annotation

不打扰是莪最后的温柔 提交于 2020-02-03 00:01:35

在这里插入图片描述可以删除xml配置文件,在实现类上面添加注解
在配置文件中 我们能配置四种功能
1创建对象
2注入数据
3改变作用范围
4改变生命周期
那么根据注解配置的 也同样可以实现这些

1.创建对象
要使用注解来创建文件,第一件事是要在删除了配置文件里面的配置信息后,你要告诉Spring你用的是注解配置方式,以及你的注解都在哪些类中,即要告诉Spring去扫描那些包
其中要先去找Annotation所需的context标签的约束
在这里插入图片描述
在这里插入图片描述注解为:@Component
它可以把指定的类通过反射实例化一个对象存入bean,那么这个bean就是之前配置文件中的value(即class=“…”),那么key(name=”…")是什么呢
其实Component有个属性-value,这个value的值 默认就是配置到的类的 类名(首字母改成小写),实际上就是我们要配置的name。如果不想用默认的只需要手动配置就好了

@Component(value="xxxx")或者@Component("xxx")

除了@Component注解还有其他三种注解
在这里插入图片描述事实上 如果只是想创建对象 这三种注释都可以换着用 是没有区别的
用于注入数据(即把Dao注入到Service)
@Autowired
在这里插入图片描述注意
唯一:如果容器里面有多个怎么办,或者没有呢
如果用了这个自动注入的配置:就可以不用set方法—注入的原理是什么?
在这里插入图片描述会按照数据类型去Spring的IOC容器里面(跳过key直接在Value里面找)
**如果没有该类型
**如果把类中实现的接口去掉 那么根据IAccountDao就找不到这个数据类型
**那么就是 如果Spring的IOC容器中找不到与这个类型匹配的 就会报错

**如果该类型有两个类型 继承了同一个接口
在这里插入图片描述**如果有两个一样的 变量名是accountDao则找不到唯一的
**那么我们在用类型找到value后 我们要根据变量名称(改id)去找key

改id是我们不想做的
所以我们有一个新的注解
@Qualifier:不能单独使用 里面直接填id
在这里插入图片描述这样就可以只需改注释就可以找到多个类型中我们需要的那个

不能独立使用 太麻烦 我们有一个更好的注解
@Resource
在这里插入图片描述
关于注入基本数据类型的注解
在这里插入图片描述
改变作用范围和生命周期相关的注解
在这里插入图片描述在类/对象里面配置了Scope
若value = singleton 则让这个实例化是单例模式(默认)
若value = prototype则是多例模式

在一个类方法上配置了PreDestroy,则这个方法是销毁方法 即销毁时才调用
同理配置了PostConstruct是指定这个方法为初始化方法 即初始化才调用

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!