写作时间:2019-08-19
Spring Boot: 2.1 ,JDK: 1.8, IDE: IntelliJ IDEA

说明

Spring核心技能有两个,Inversion of Control(IOC)控制翻转,Aspect-oriented Programming (AOP) 切面编程。

  1. 其中IOC也叫dependency injection (DI)依赖注入。也就是初始化对象叫做Bean不需要自己new出来,交给框架的Factory自动生产即可。
    org.springframework.beansorg.springframework.context 这两个packages 是Spring Framework’s IoC 的基础容器container. BeanFactory interface接口提供了高级配置机制,使可以管理任何类型的对象object. ApplicationContext是BeanFactory的子接口.
    IOC 图解
  2. AOP的思想一就是模块化所有的类,这样子有个好处就是你可以按需加载项目需要的组件。思想二就是可以给方法前面,中间,后面增强功能。

现在都是用注解来配合处理。所以这节就复习常用的注解。

Java Config 相关注解

  1. @Configuration
    标明当前类为配置类
  2. @ImportResource
    把XML的文件配置信息注入进来
  3. @ComponentScan
    告诉整个Spring的容器,我里面可以扫描哪些package下的Bean配置
  4. @Bean
    在Java @Configuration的类当中,如果方法被标注为@Bean, 它的返回就可以当做Spring的配置,存在于 ApplicationContext
  5. @ConfigurationProperties
    key=value的配置文件的信息,读取并自动封装成实体类。

Bean定义相关注解

  1. @Component
    所有Java Bean都可以通过Component来定义,在类上面定义即可。
  2. @Repository
    标识数据库访问层的Bean
  3. @Service
    标识服务层的Bean
  4. @Controller
    Web层的Bean
  5. @RestController
    Restful的Bean,由@Controller,@ResponseBody组合而成
  6. @RequestMapping
    定义方法是在访问url下面相应的

Bean注入相关注解

  1. @Autowired
    按照类型进行查找注入进来
  2. @Qualifier
    在整个上下文当中,有多个同类型的Bean,指定Bean不同的名字来注入。需要配合@Autowired使用
  3. @Resource
    指定Bean不同的名字来注入,单独使用即可,不需要@Autowired。
  4. @Value
    在Bean中注入一些常量,或者配置中的信息。

Lombok / Log

Project Lombok 能够自动嵌入IDE和构建工具,提升开发效率

常用功能

  1. @Getter / @Setter
    自动生成Getter, Setter
  2. @ToString
    把所有属性生成一个String
  3. @NoArgsConstructor / @RequiredArgsConstructor / @AllArgsConstructor
    生成构造方法
  4. @Data
    包含@Getter / @Setter 和 @ToString
  5. @Builder
    帮助生成构造方法
  6. @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的常用注解相关推荐

  1. CCNP-第十九篇-ISIS(二)

    CCNP-第十九篇-ISIS(二) 首先来个对比的通信机制 首先呢,工作环境中,他没OSPF那么复杂哈,然后 底层启了ISIS,通了就不用管它了 实验环境 注意,上图是错误示范哦! 为什么呢? 为啥呢 ...

  2. Zsh 开发指南(第十九篇 脚本实例讲解)

    导读 本文将讲解一些比较简单的 zsh 脚本实例. 实例一:复制一个目录的目录结构 功能: 将一个目录及它下边的所有目录复制到另一个目录中(即创建同名目录),但不复制目录下的其他类型文件. 例子: s ...

  3. 世界上最经典的十九篇爱情短文

    世界上最经典的十九篇爱情短文 (一)开始的开始总是甜蜜的 后来就有了厌倦.习惯.背弃.寂寞.绝望和冷笑 曾经渴望与一个人长相厮守,后来,多么庆幸自己离开了 曾几何时,在一段短暂的时光里, 我们以为自己 ...

  4. Android UI开发第三十九篇——Tab界面实现汇总及比较

    Tab布局是iOS的经典布局,Android应用中也有大量应用,前面也写过Android中TAb的实现,<Android UI开发第十八篇--ActivityGroup实现tab功能>.这 ...

  5. 【十九】springboot整合ElasticSearch实战(万字篇)

    本章开始学习springboot整合ElasticSearch 7.X版本并通过小demo实现基本的增删改查.实现如下案例: 1.当向数据新增一个商品信息时,同时向rabbitMQ发起消息(异步实现) ...

  6. SpringBoot第十九篇:邮件服务

    作者:追梦1819 原文:https://www.cnblogs.com/yanfei1819/p/11118340.html 版权声明:本文为博主原创文章,转载请附上博文链接! 引言   邮件的重要 ...

  7. SpringBoot非官方教程 | 第二十六篇: sprinboot整合elk,搭建实时日志平台

    转载请标明出处: 原文首发于https://www.fangzhipeng.com/springboot/2017/07/11/sprinboot25-elk/ 本文出自方志朋的博客 这篇文章主要介绍 ...

  8. 七十九、Springboot 整合 Elasticsearch

    @Author:Runsen 来源:尚硅谷 下面建议读者学习尚硅谷的B站的SpringBoot视频,我是学雷丰阳视频入门的. 具体链接如下:B站尚硅谷SpringBoot教程 文章目录 Elastic ...

  9. “约见”面试官系列之常见面试题第十九篇之数组去重(建议收藏)

    目录 数组去重的方法 一.利用ES6 Set去重(ES6中最常用) 二.利用for嵌套for,然后splice去重(ES5中最常用) 三.利用indexOf去重 四.利用sort() 五.利用对象的属 ...

  10. 【MySQL数据库 | 第十九篇】SQL性能分析工具

    目录 前言: SQL执行频率: 慢查询日志: profile: profile各个指令: 总结: 前言: 本篇我们将为大家讲解SQL性能的分析工具,而只有熟练的掌握了性能分析的工具,才可以更好的对SQ ...

最新文章

  1. C/C++中“#”和“##”的作用和用法
  2. 例题5-8 Unixls命令(Unix ls,UVa400)
  3. 苹果的新Siri:不男,也不女
  4. 一个简单的Webservice的demo(中)_前端页面调用
  5. Moodle安全漏洞如何启动远程代码执行?
  6. java限频_单个用户及Ip请求频率限制思路(附java实现)
  7. Android TimePickerDialog样式配置与TimePicker模式选择
  8. 工具:分享IntelliJ IDEA 5条调试技巧,太实用了!
  9. 学习linux/unix编程方法的建议[转]
  10. StructureMap极速上手指南(翻译)
  11. ES6新特性_ES6生成器函数声明与调用---JavaScript_ECMAScript_ES6-ES11新特性工作笔记020
  12. 网上论坛生成测试数据方法(抢分利器)
  13. Google Earth 6 Beta版发布 (供下载地址)
  14. WPS或Excel将姓名变为拼音
  15. Python多项逻辑回归和线性判别分析识别英文字母
  16. 以教育行业为例,教产品经理如何做行业分析
  17. python PyPDF2处理PDF文件
  18. Spring之Specification复杂查询和Criteria查询
  19. CAD高版本转低版本的方法有哪些?
  20. 记一次盖茨木马应急响应

热门文章

  1. python for 加速_适合练习的10个Python项目,每个项目都不到500行代码
  2. php字符串操作整理,PHP学习之整理字符串
  3. request.form 和 Request.QueryString 区别
  4. 广东电网公司大数据平台初步建成
  5. ubuntu 安装 wkhtmltopdf 的方法
  6. iOS 项目改名~~~~~
  7. HT for Web列表和3D拓扑组件的拖拽应用
  8. 你真的输不起了,别再孩子气了
  9. 2022 基于SpringBoot/SSM的脚手架租赁系统
  10. ba网络c语言编程,如何用C语言程序构造随机网络和BA无尺度网络