Java知识学堂https://gitee.com/zhangbw666/it-knowledge

传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop、事务,这么做有两个缺点:

1、如果所有的内容都配置在.xml文件中,那么.xml文件将会十分庞大;如果按需求分开.xml文件,那么.xml文件又会非常多。总之这将导致配置文件的可读性与可维护性变得很低。

2、在开发中在.java文件和.xml文件之间不断切换,是一件麻烦的事,同时这种思维上的不连贯也会降低开发的效率。

为了解决这两个问题,Spring引入了注解,通过"@XXX"的方式,让注解与Java Bean紧密结合,既大大减少了配置文件的体积,又增加了Java Bean的可读性与内聚性。

Spring的一个核心功能是IOC,就是将Bean初始化加载到容器中,Bean是如何加载到容器的,可以使用Spring注解方式或者Spring XML配置方式。

注解本身是没有功能的,和xml一样,注解和xml都是一种元数据,元数据即解释数据的数据,也就是所谓的配置。

一、Spring常用注解

1、声明bean的注解

@Component:泛指各种组件

@Controller、@Service、@Repository都可以称为@Component

@Controller:控制层

@Service:业务层

@Repository:数据访问层

2、注入bean的注解

@Autowired:由Spring提供

@Inject:由JSR-330提供

@Resource:由JSR-250提供

3、Java配置类相关注解

@Configuration:声明当前类为配置类

@Bean:注解在方法上,声明当前方法的返回值为一个bean,替代xml中的方式

@ComponentScan:用于对Component进行扫描

4、切面(AOP)相关注解

Spring支持AspectJ的注解式切面编程

@Aspect:声明一个切面

@After:在方法执行之后执行(方法上)

@Before:在方法执行之前执行(方法上)

@Around:在方法执行之前与之后执行(方法上)

@PointCut:声明切点

@EnableAspectJAutoProxy:开启Spring对AspectJ代理的支持

5、@Bean的属性支持

@Scope设置类型包括:设置Spring容器如何新建Bean实例

Singleton:单例,一个Spring容器中只有一个bean实例,默认模式

Protetype:每次调用新建一个bean

Request:web项目中,给每个http request新建一个bean

Session:web项目中,给每个http session新建一个bean

GlobalSession:给每一个 global http session新建一个Bean实例

6、@Value注解

注入普通字符、注入操作系统属性、注入表达式结果、注入其它bean属性、注入文件资源、注入网站资源、注入配置文件

7、环境切换

@Profile:指定组件在哪个环境的情况下才能被注册到容器中,不指定,任何环境下都能注册这个组件。

@Conditional:通过实现Condition接口,并重写matches方法,从而决定该bean是否被实例化。

8、异步相关

@EnableAsync:配置类中通过此注解开启对异步任务的支持

@Async:在实际执行的bean方法使用该注解来声明其是一个异步任务(方法上或类上所有的方法都将异步,需要@EnableAsync开启异步任务)

9、定时任务相关

@EnableScheduling:在配置类上使用,开启计划任务的支持

@Scheduled:来申明这是一个任务,包括cron,fixDelay,fixRate等类型(方法上,需先开启计划任务的支持)

10、Enable***注解说明

@EnableAspectAutoProxy:开启对AspectJ自动代理的支持

@EnableAsync:开启异步方法的支持

@EnableScheduling:开启计划任务的支持

@EnableWebMvc:开启web MVC的配置支持

@EnableConfigurationProperties:开启对@ConfigurationProperties注解配置Bean的支持

@EnableJpaRepositories:开启对SpringData JPA Repository的支持

@EnableTransactionManagement:开启注解式事务的支持

@EnableCaching:开启注解式的缓存支持

11、测试相关注解

@RunWith:运行器,Spring中通常用于对JUnit的支持

@ContextConfiguration

用来加载配置文件,其中classes属性用来加载配置类

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath*:/*.xml"})
public class CDPlayerTest {}

二、SpringMVC常用注解

1、@EnableWebMvc:在配置类中开启Web MVC的配置支持

2、@Controller

3、@RequestMapping:用于映射web请求,包括访问路径和参数

4、@ResponseBody:支持将返回值放到response内,而不是一个页面,通常用户返回json数据

5、@RequestBody:允许request的参数在request体中,而不是在直接连接的地址后面

6、@PathVariable:用于接收路径参数,比如@RequestMapping(“/hello/{name}”)声明的路径,将注解放在参数前,即可获取该值,通常作为Restful的接口实现方法。

7、@RestController:该注解为一个组合注解,相当于@Controller和@ResponseBody的组合,注解在类上,意味着,该Controller的所有方法都默认加上了@ResponseBody。

8、@ControllerAdvice:全局异常处理、全局数据绑定、全局数据预处理

9、@ExceptionHandler:用于全局处理控制器里的异常

10、@InitBinder:用来设置WebDataBinder,WebDataBinder用来自动绑定前台请求参数到Model中

你多学一样本事,就少说一句求人的话,现在的努力,是为了以后的不求别人,实力是最强的底气。记住,活着不是靠泪水博得同情,而是靠汗水赢得掌声。——《写给程序员朋友》 

点赞&在看是最大的支持

Spring常用注解整理相关推荐

  1. Spring 常用注解 脑图版

    Spring 常用注解 脑图版 学习Spring Boot过程的笔记,通过思维导图整理自己的思路,更符合大脑记忆;在线版可以看到注释及代码实现; 在线脑图地址: http://naotu.baidu. ...

  2. Spring系列之Spring常用注解总结

    参看博客:https://www.cnblogs.com/xiaoxi/p/5935009.html 传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop.事物,这么做有两个缺 ...

  3. Spring常用注解总结

    传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop.事物,这么做有两个缺点: 1.如果所有的内容都配置在.xml文件中,那么.xml文件将会十分庞大:如果按需求分开.xml文 ...

  4. spring autowired idea都匹配上了_你清楚这几个Spring常用注解吗?

    作者:平凡希http://cnblogs.com/xiaoxi/p/5935009.html 传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop.事物,这么做有两个缺点: 如 ...

  5. Java 必须掌握的 12 种 Spring 常用注解

    转载自  Java 必须掌握的 12 种 Spring 常用注解 1.声明bean的注解 @Component 组件,没有明确的角色 @Service 在业务逻辑层使用(service层) @Repo ...

  6. Spring常用注解 - 使用注解来构造IoC容器

    Spring常用注解 使用注解来构造IoC容器 用注解来向Spring容器注册Bean.需要在applicationContext.xml中注册<context:component-scan b ...

  7. autowired注解_Spring系列之Spring常用注解总结

    作者:平凡希来源:https://www.cnblogs.com/xiaoxi/p/5935009.html 传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop.事物,这么做 ...

  8. sessionattribute 被spring 扫描不到_Spring 系列之 Spring 常用注解总结(肝硬化的干货)...

    传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop.事物,这么做有两个缺点: 1. 如果所有的内容都配置在.xml文件中,那么.xml文件将会十分庞大:如果按需求分开.xml ...

  9. java 知识积累_java学习知识积累-spring常用注解

    java学习知识积累-spring常用注解 类的分层注解,由于我们后台开发都是分为三层进行开发的,所以Spring框架提供了三种对于不同层的注解方式: 控制层:@Controller 服务层:@Ser ...

  10. Spring常用注解你知道有哪些吗?

    Spring 常用注解 今天给大家介绍一下 Spring 中的常用注解,同时这些注解也是 Spring 中经常用到的注解,下面我们就一起来看看都有哪些注解吧. 1.@Controller 在控制层使用 ...

最新文章

  1. 【干货】求之不得的 Java 文档教程大汇总!
  2. 大话设计模式—原型模式
  3. Apache架构师总结的30条设计原则!
  4. Angular2项目中浏览器拦截弹出窗口的解决方法
  5. arduino pmw 串口 字符串_ESP32 Arduino开发:串口(Serial port)
  6. fedora10完全配置文档连接网址
  7. STM32F103+CubeMX-Keil上移植RTX5实时系统
  8. Freescale MC9S08AW60汇编学习笔记(三)
  9. E站账号cookie分享_58云账号跨域实践总结
  10. 收藏|2021年浅谈多任务学习
  11. android刷机工具mac版,苹果一键刷安卓!OS X版CM刷机工具发布
  12. 快速启动工具入门——以Launchy为例(二)
  13. 素数表(Eratosthenes)
  14. python中format使用
  15. Windows定时关机小程序
  16. Magento二次开发哪家好呢?
  17. 在线客服机器人交互功能开发总结
  18. The following packages have unmet dependencies问题
  19. Six提供了Python 2和Python 3的兼容库
  20. 群晖Docker配置阿里云国际域名DDNS实现外网访问

热门文章

  1. 【时序】LSTNet:结合 CNN、RNN 以及 AR 的时间序列预测模型
  2. win7桌面快捷方式图标修复方法
  3. 怎么选择boost升压电路的电感?只要三个公式
  4. html5电商销售网站统计后台模板html5电商销售网站统计后台模板
  5. 计算机操作系统(第四版)第二章 习题答案
  6. De4Dot+Reflector 支持多种反混淆
  7. ONVIF系列——Onvif协议介绍
  8. 数据库的内连接和外连接的区别
  9. Hough变换圆检测定位
  10. python tkinter教程-事件绑定_详解python tkinter教程-事件绑定