易筋SpringBoot 2.1 | 第十九篇:SpringBoot的常用注解
写作时间:2019-08-19
Spring Boot: 2.1 ,JDK: 1.8, IDE: IntelliJ IDEA
说明
Spring核心技能有两个,Inversion of Control(IOC)控制翻转,Aspect-oriented Programming (AOP) 切面编程。
- 其中IOC也叫dependency injection (DI)依赖注入。也就是初始化对象叫做Bean不需要自己new出来,交给框架的Factory自动生产即可。
org.springframework.beans
和org.springframework.context
这两个packages 是Spring Framework’s IoC 的基础容器container. BeanFactory interface接口提供了高级配置机制,使可以管理任何类型的对象object. ApplicationContext是BeanFactory的子接口.
IOC 图解
- AOP的思想一就是模块化所有的类,这样子有个好处就是你可以按需加载项目需要的组件。思想二就是可以给方法前面,中间,后面增强功能。
现在都是用注解来配合处理。所以这节就复习常用的注解。
Java Config 相关注解
- @Configuration
标明当前类为配置类 - @ImportResource
把XML的文件配置信息注入进来 - @ComponentScan
告诉整个Spring的容器,我里面可以扫描哪些package下的Bean配置 - @Bean
在Java @Configuration的类当中,如果方法被标注为@Bean, 它的返回就可以当做Spring的配置,存在于 ApplicationContext - @ConfigurationProperties
把key=value
的配置文件的信息,读取并自动封装成实体类。
Bean定义相关注解
- @Component
所有Java Bean都可以通过Component来定义,在类上面定义即可。 - @Repository
标识数据库访问层的Bean - @Service
标识服务层的Bean - @Controller
Web层的Bean - @RestController
Restful的Bean,由@Controller,@ResponseBody组合而成 - @RequestMapping
定义方法是在访问url下面相应的
Bean注入相关注解
- @Autowired
按照类型进行查找注入进来 - @Qualifier
在整个上下文当中,有多个同类型的Bean,指定Bean不同的名字来注入。需要配合@Autowired使用 - @Resource
指定Bean不同的名字来注入,单独使用即可,不需要@Autowired。 - @Value
在Bean中注入一些常量,或者配置中的信息。
Lombok / Log
Project Lombok 能够自动嵌入IDE和构建工具,提升开发效率
常用功能
- @Getter / @Setter
自动生成Getter, Setter - @ToString
把所有属性生成一个String - @NoArgsConstructor / @RequiredArgsConstructor / @AllArgsConstructor
生成构造方法 - @Data
包含@Getter / @Setter 和 @ToString - @Builder
帮助生成构造方法 - @Slf4j / @CommonsLog / @Log4j2
日志输出
pom.xml add dependency
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.8</version><scope>provided</scope>
</dependency>
参考
https://docs.spring.io/spring/docs/current/spring-framework-reference/core.html#spring-core
易筋SpringBoot 2.1 | 第十九篇:SpringBoot的常用注解相关推荐
- CCNP-第十九篇-ISIS(二)
CCNP-第十九篇-ISIS(二) 首先来个对比的通信机制 首先呢,工作环境中,他没OSPF那么复杂哈,然后 底层启了ISIS,通了就不用管它了 实验环境 注意,上图是错误示范哦! 为什么呢? 为啥呢 ...
- Zsh 开发指南(第十九篇 脚本实例讲解)
导读 本文将讲解一些比较简单的 zsh 脚本实例. 实例一:复制一个目录的目录结构 功能: 将一个目录及它下边的所有目录复制到另一个目录中(即创建同名目录),但不复制目录下的其他类型文件. 例子: s ...
- 世界上最经典的十九篇爱情短文
世界上最经典的十九篇爱情短文 (一)开始的开始总是甜蜜的 后来就有了厌倦.习惯.背弃.寂寞.绝望和冷笑 曾经渴望与一个人长相厮守,后来,多么庆幸自己离开了 曾几何时,在一段短暂的时光里, 我们以为自己 ...
- Android UI开发第三十九篇——Tab界面实现汇总及比较
Tab布局是iOS的经典布局,Android应用中也有大量应用,前面也写过Android中TAb的实现,<Android UI开发第十八篇--ActivityGroup实现tab功能>.这 ...
- 【十九】springboot整合ElasticSearch实战(万字篇)
本章开始学习springboot整合ElasticSearch 7.X版本并通过小demo实现基本的增删改查.实现如下案例: 1.当向数据新增一个商品信息时,同时向rabbitMQ发起消息(异步实现) ...
- SpringBoot第十九篇:邮件服务
作者:追梦1819 原文:https://www.cnblogs.com/yanfei1819/p/11118340.html 版权声明:本文为博主原创文章,转载请附上博文链接! 引言 邮件的重要 ...
- SpringBoot非官方教程 | 第二十六篇: sprinboot整合elk,搭建实时日志平台
转载请标明出处: 原文首发于https://www.fangzhipeng.com/springboot/2017/07/11/sprinboot25-elk/ 本文出自方志朋的博客 这篇文章主要介绍 ...
- 七十九、Springboot 整合 Elasticsearch
@Author:Runsen 来源:尚硅谷 下面建议读者学习尚硅谷的B站的SpringBoot视频,我是学雷丰阳视频入门的. 具体链接如下:B站尚硅谷SpringBoot教程 文章目录 Elastic ...
- “约见”面试官系列之常见面试题第十九篇之数组去重(建议收藏)
目录 数组去重的方法 一.利用ES6 Set去重(ES6中最常用) 二.利用for嵌套for,然后splice去重(ES5中最常用) 三.利用indexOf去重 四.利用sort() 五.利用对象的属 ...
- 【MySQL数据库 | 第十九篇】SQL性能分析工具
目录 前言: SQL执行频率: 慢查询日志: profile: profile各个指令: 总结: 前言: 本篇我们将为大家讲解SQL性能的分析工具,而只有熟练的掌握了性能分析的工具,才可以更好的对SQ ...
最新文章
- C/C++中“#”和“##”的作用和用法
- 例题5-8 Unixls命令(Unix ls,UVa400)
- 苹果的新Siri:不男,也不女
- 一个简单的Webservice的demo(中)_前端页面调用
- Moodle安全漏洞如何启动远程代码执行?
- java限频_单个用户及Ip请求频率限制思路(附java实现)
- Android TimePickerDialog样式配置与TimePicker模式选择
- 工具:分享IntelliJ IDEA 5条调试技巧,太实用了!
- 学习linux/unix编程方法的建议[转]
- StructureMap极速上手指南(翻译)
- ES6新特性_ES6生成器函数声明与调用---JavaScript_ECMAScript_ES6-ES11新特性工作笔记020
- 网上论坛生成测试数据方法(抢分利器)
- Google Earth 6 Beta版发布 (供下载地址)
- WPS或Excel将姓名变为拼音
- Python多项逻辑回归和线性判别分析识别英文字母
- 以教育行业为例,教产品经理如何做行业分析
- python PyPDF2处理PDF文件
- Spring之Specification复杂查询和Criteria查询
- CAD高版本转低版本的方法有哪些?
- 记一次盖茨木马应急响应
热门文章
- python for 加速_适合练习的10个Python项目,每个项目都不到500行代码
- php字符串操作整理,PHP学习之整理字符串
- request.form 和 Request.QueryString 区别
- 广东电网公司大数据平台初步建成
- ubuntu 安装 wkhtmltopdf 的方法
- iOS 项目改名~~~~~
- HT for Web列表和3D拓扑组件的拖拽应用
- 你真的输不起了,别再孩子气了
- 2022 基于SpringBoot/SSM的脚手架租赁系统
- ba网络c语言编程,如何用C语言程序构造随机网络和BA无尺度网络