一篇全了解Spring全注解详解

目录

用于创建对象

        1.Component              

        2.Controller

        3.Service

        4.Repository

用于注入数据

        1.Autowired

        2.Qulifier

        3.Resource

        4.Value            

用于改变作用范围

        1.Scope               

和生命周期相关

        1.PreDestroy

        2.PostConstruct

       

配置类

        1.Configuration                              

        2.ComponentScan                

        3.Bean               

        4.PropertySource             

        5.EnableTransactionManagement   

        6.EnableAspectJAutoProxy           

        7.Transaction

        8.Aspect    

整合Junit

                1.RunWith(SpringRunner.class)

                2.ContextConfiguration      


用于创建对象

        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及以上

posted @ 2022-11-09 08:14  陶然同学  阅读(265)  评论(0编辑  收藏  举报