一篇全了解Spring全注解详解

134 阅读3分钟

目录


用于创建对象

        1.Component              

                作用:用于把当前类对象存入spring容器中

                属性:

                value:用于指定bean的id 当我们不写时 它默认是当前类名 首字母改小写

        2.Controller

                用于表现层

        3.Service

                用于业务层

        4.Repository

                用于持久层

用于注入数据

        1.Autowired

                作用:

                自动按照类型注入 只要容器中有唯一一个bean对象类型和要注入的变量类型匹配 就

                可以注入成功

                如果ioc容器中没有任何bean的类型和要注入的变量类型匹配 则报错

                如果ioc容器中有多个bean类型 则按照变量名注入

                出现位置:

                可以是变量上 也可以是方法上

                细节:

                在使用注解注入时 set方法就不是必须的

        2.Qulifier

                作用:

                在按照类中注入的基础之上再按照名称注入 它在给类成员注入时不能单独使用 但是

                在给方法参数注入时可以

                属性:

                value:用于指定注入bean的id

        3.Resource

                作用:

                直接按照bean的id注入 它可以单独使用

                属性:

                name用于指定bean的id

        4.Value            

                作用:

                用于注入基本类型和String类型的数据

                属性:

                value:用于指定数据的值 它可以使用spring中SpEl(也就是spring的el表达式)

                SpEl的写法:${表达式}

用于改变作用范围

        1.Scope               

                作用:

                用于指定bean的作用范围

                属性:

                    value指定范围的取值 常用取值 singleton prototype

和生命周期相关

        1.PreDestroy

                作用:

                    用于指定销毁方法

        2.PostConstruct

               作用:

                    用于指定初始化方法

配置类

        1.Configuration                              

             作用:

             指定当前类是一个配置类

        2.ComponentScan                

                作用:

                用于通过注解指定spring在创建容器时要扫描的包

                属性:

                value:它和basePackages的作用时一样的 都是用于创建容器时要扫描的包

                细节:

                当配置类作为AnnotationConfigApplicationContext对象的参数时 该注解可以不写

        3.Bean               

                作用:

                用于导入其他的配置类

                属性:

                用于指定其他配置类的字节码

                当我们使用Import的注解之后 有Import注解的类型就是父配置类 而导入的都是子配置类

        4.PropertySource             

                作用:

                用于加载.properties文件中的配置
属性:

                value[]:用于指定properties文件位置 如果是在类路径下 需要写上classpath

                细节:

               必须是从spring容器获取的才能注入 new的对象跟spring没有任何关系

        5.EnableTransactionManagement   

                作用:

                    配置类开启事务支持

        6.EnableAspectJAutoProxy           

                作用:

                    配置类开启切面

        7.Transaction

                作用:

                    控制事务提交/回滚 作用于类上

        8.Aspect    

                作用:

                    声明这个类是一个切面类

整合Junit

                1.RunWith(SpringRunner.class)

                        使用Junit提供的一个注解把原有的main方法替换了 替换成spring提供的@Runwith

                2.ContextConfiguration      

                        locations:指定xml文件的位置 加上classpath关键字 表示在类路径下

                        Classes:指定注解类所在地位置

                        当我们使用spring 5.x版本的时候 要求junit的jar必须4.12及以上

本文使用 文章同步助手 同步