Spring注解详解

概述

    注解的优势主配置简单只需要添加标签,JAVA的反射机制就可以根据标签自动注入自动初始化。

@Autowired

    配置方式:属性、setter方法或构造器都可以

    不推荐使用,建议使用@Resource ,因为要使这个注解生效还需要在Spring配置文件中配置AutowiredAnnotationBeanPostProcessor    

    实现成员属性的自动装配,Spring通过BeanPostProcessor类解析@Autowired,需要在Spring配置文件中申明

    AutowiredAnnotationBeanPostProcessor类。这样Spring在启动时将扫描所有的Bean进行注入。

@Qualifier

    配置方式:跟@Autowired配合使用(配置构造器时,需要配置到入参处)

    配置装配方式,默认byType,配置后根据@Qualifier byName装配。

@Resource

    配置方式:属性,默认byName配置,当配置为(type=“name”)时,跟@Autowired相同

    - 这里是列表文本如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常

    - 这里是列表文本如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常

    - 这里是列表文本如果指定了type,则从上下文中找到类型匹配的唯一bean进行装配,找不到或者找到多个,都会抛出异常

    - 这里是列表文本如果既没有指定name,又没有指定type,则自动按照byName方式进行装配(见2);如果没有匹配,则回退为一个原始类型(UserDao)进行匹配,如果匹配则自动装配;

    需要配置文件中配置CommonAnnotationBeanPostProcessor类(CommonAnnotationBeanPostProcessor实现了BeanPostProcessor)

@PostConstruct 和 @PreDestroy

    配置方式:方法体

    @PostConstruct注释的方法将在类实例化后调用

    @PreDestroy注释的方法在类销毁前调用

@Repository

    配置方式:类

    将类识别为bean,同时还能将所标注的类中抛出的数据访问异常封装为Spring的数据访问异常类型。

    @Repository 的基础上增加了功能类似的额外三个注解:@Component、@Service、@Constroller,它们分别用于软件系统的不同层次:

    @Component 是一个泛化的概念,仅仅表示一个组件 (Bean) ,可以作用在任何层次。

    @Service 通常作用在业务层,但是目前该功能与 @Component 相同。

    @Constroller 通常作用在控制层,但是目前该功能与 @Component 相同。

@scopee

    配置方式:类

    @Scope("prototype")指定类的作用范围,当从Spring中获取时,每次返回的都是新实例

@RequestMapping

    配置方式:类 将url和类绑定。 方法 将url和方法绑定。

@RequestParam

    配置方式:参数

    一般用于将指定的请求参数付给方法的形参,默认请求参数名称和方法参数名称相同,也可以(“name”)指定请求参数名称

@SessionAttributes

    配置方式:类

    @SessionAttributes("a","b")将ModelMap中得key为“a”、“b”再放入session中。这样request和session中都有了

@ModelAttribute

    配置方式:方法形参

    配合@SessionAttribute一起使用时,可以将ModelMap中得属性的值自动赋值给指定的变量

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

spring注解

随着越来越多地使用Springboot敏捷开发,更多地使用注解配置Spring,而不是Spring的applicationContext.xml文件。Configuration注解:Spring解析为配置类,相当于spring配置文件Bean注解:容器注册Bean组件,默认id为方法名@Configurat

springboot下 shiro使用ehcache和@cacheable冲突的处理

springboot提供缓存注解标签@Cacheable,当使用ehcache时,autoconfig机制会根据配置文件自动去初始化bean而shiroConfig在@Configuration构造时,也会去初始化ehcache,项目启动会产生如下异常org.apache.shiro.cache.CacheException:net.sf.