SpringBoot注解分析
Spring boot
简介:是spring社区发布的一个开源项目,旨在帮助开发者更快更简单的构建项目,使用习惯优于配置,的理念让你的项目快速的跑起来,使用springboot可以不用,或者很少的配置文件。
Spring boot 核心功能
独立运行spring项目:可以以jar包的形式独立进行运行 通过java –jar xxx.jar方式进行运行,不像之前的你还要打成一个war包放在webapp底下才可以。
内嵌servlet容器:比如tomcat
提供start简化maven配置:一个maven项目,使用spring-boot-start-web时,会自动加载spring-boot的依赖包
自动配置spring
准生产的应用监控:提供http进行监控
无代码生成和xml配置:主要通过条件注解来实现

这个依赖会使得自动加载剩下的依赖,创建一个新的项目,要想让他运行起来,这个依赖是必须的,如果没有这个依赖你的项目是跑不起来的。

Maven的用户可以通过继承spring-boot-starter-parent项目来获得一些合理的默认配置,这个parent提供了以下特性
默认使用java8
使用UTF-8编码
一个引用管理的功能继承了这个parent之后,我们的其他的依赖就可以不用写version版本信息了
识别过来的资源过滤
识别插件的配置
能够识别application.xml 和applicaton.yml类型的文件,同时也可以支持application-dev类型的文件,这样的话就能更好的在不同的生产环境下进行使用。
Maven把默认的占位符${}修改为了@..@
当然了,如果一些依赖我们不想使用默认的版本的话,我们可以直接加上版本号

这个依赖 如果你需要将maven打成一个jar包的话,我们需要配置一下这个maven组件,位置一般放在dependenies 之后

Starter 可以理解为一种插件,我们可以理解为一种插件类似于js,他可以发现springboot项目classpath类下面的所需要的bean,并且植入bean。
再来说说里面的一些注解
@Resource和@Autowired
为什么把这两个合在一块列出来,因为这两很像
@Resource 是javaee里面提供的,使用这个注解会自动注入bean,而且这个是ee里面提供的所以和spring没有多大关系,所以减少了一些java和spring之间代码的耦合,这个注解是按照名字进行注入的,当然如果有多个子类的话他会报错,因为他不知道该调用那个子类。
我们需要在下面加required = false
@Atowired这个是spring提供的,是按照类型进行注入装配的,如果想让他进行按照名字装配,则需要在@Atowired下面加@qualifier(“name”)这个注解
@Controller 要使用这个注解的话,你需要在控制器方法类上面不仅要加@RequestMapping 你还要加@RequestBody 代表返回json格式的数据
@RestController 如果我们使用这个注解的话,那么我们就可以不用使用@RequestBody这个注解,因为@RestController = @Controller + @RequestMapping
@Repository用来标注数据访问组件
@Controller用来标注控制层的组件
@Service 用来标注 业务层的组件
Spring2.5为我们引入了组件自动扫描机制 他在类路径下寻找标注了上述注解的类,并把这些类纳入spring容器中管理,他的作用和在.xml中配置bean节点组件是一样的
比如
这个在启动类上面的注解他就是自动扫描dao层的数据,如果我们不加这个的话,我们就需要在dao层每一个类上面加@Repository注解,都是一样的效果。
这个是一个复合注解包括@ComponentScan 和 @SpringBootConfiguration 和 @EnableAutoConfiguration
@SpringBootConfiguration 标注当前类为配置类
@EnableAutoConfiguration 的作用启动自动的配置,这个注解的意思就是springboot根据你添加的jar包来配置你项目的默认配置,比如他会根据你添加的jar包来配置你项目的默认配置,比如spring-boot-start-web来判断你的项目是否需要添加了webmvc和tomcat,就会帮你自动配置web项目中所需要的默认配置
@ComponentScan扫描当前包及其子包下面被@component,@Controller,@Service,@Repository标记标注的类然后纳入spring管理容器中去
当然了 我们在启动类中可以使用@ComponentScan代替其实也可以运行,原因是这两个注解是一个相互包含的关系。
SpringBoot注解分析的更多相关文章
- SpringBoot注解分析解释
使用注解的优势: 1.采用纯java代码,不在需要配置繁杂的xml文件 2.在配置中也可享受面向对象带来的好处 3.类型安全对重构可以提供良好的支持 4.减少复杂配置文件的同时亦能享受到springI ...
- SpringBoot系列三:SpringBoot基本概念(统一父 pom 管理、SpringBoot 代码测试、启动注解分析、配置访问路径、使用内置对象、项目打包发布)
声明:本文来源于MLDN培训视频的课堂笔记,写在这里只是为了方便查阅. 1.了解SpringBoot的基本概念 2.具体内容 在之前所建立的 SpringBoot 项目只是根据官方文档实现的一个基础程 ...
- springboot注解使用说明
springboot注解 @RestController和@RequestMapping注解 我们的Example类上使用的第一个注解是 @RestController .这被称为一个构造型(ster ...
- springBoot系列-->springBoot注解大全
一.注解(annotations)列表 @SpringBootApplication:包含了@ComponentScan.@Configuration和@EnableAutoConfiguration ...
- @Tranactional 注解分析
Spring可以通过注解@Transactional来为业务逻辑层的方法(调用DAO完成持久化动作)添加事务能力,如下是@Transactional注解的定义 @Tranactional注解分析 作用 ...
- SpringBoot注解大全(转)
原文链接:[springBoot系列]--springBoot注解大全 一.注解(annotations)列表 @SpringBootApplication:包含了@ComponentScan.@Co ...
- springboot注解大全
springboot注解:@Service: 注解在类上,表示这是一个业务层bean@Controller:注解在类上,表示这是一个控制层bean@Repository: 注解在类上,表示这是一个数据 ...
- SpringBoot注解验证参数
SpringBoot注解验证参数 废话不多说,直接上表格说明: 注解 作用类型 解释 @NotNull 任何类型 属性不能为null @NotEmpty 集合 集合不能为null,且size大于0 @ ...
- SpringBoot注解把配置文件自动映射到属性和实体类实战
SpringBoot注解把配置文件自动映射到属性和实体类实战 简介:讲解使用@value注解配置文件自动映射到属性和实体类 1.配置文件加载 方式一 1.Controller上面配置 @Propert ...
随机推荐
- 3.k均值的算法
一.课堂练习 # 课堂练习 from sklearn.datasets import load_iris # 导入鸢尾花数据 iris=load_iris() iris iris.keys() dat ...
- 通达OA-2017版本漏洞复现
搭建环境 服务器 虚拟机系统版本:Windows Server 2016. 安装服务端 1.下载安装程序 这里我们下载的是2017版本的通达OA服务端: 2.安装程序 配置服务: 漏洞复现 1.任意文 ...
- 设计可靠的udp
推荐链接: https://www.cnblogs.com/lixiang-share/p/7152870.html
- Zabbix3.0安装部署最佳实践
Zabbix介绍 1.1zabbix 简介 Zabbix 是一个高度集成的网络监控解决方案,可以提供企业级的开源分布式监控解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收 ...
- 移动端rem适配&iOS兼容
移动端rem适配js // 默认375,750设计稿请将375替换为750 (function (doc, win) { // 移动端适配 var docEl = doc.documentElemen ...
- 已有项目接入git远程仓库
1.项目根目录初始化git仓库 git init 2.将本地项目与远程仓库关联(首先得在远程创建一个代码仓库) git remote add origin 远程仓库地址 诺,仓库地址就是这个玩意 3. ...
- 与IBM的Lin Sun关于Istio 1.0和微服务的问答
北京时间 7 月 31 日,Istio 正式发布了 1.0 版本,并表示已经可用于生产环境.该版本的主要新特性包括跨集群 mesh 支持.细粒度流量控制以及在一个 mesh 中增量推出 mutual ...
- 震惊,某博主为吸引眼球拿出压箱底SQL总结,如果你没看那就吃亏了!(超级详细的SQL基础,你还不会的话就别学数据库了)
这里还有数据库相关的优质文章:快戳我,快戳我
- 数学--数论--HDU--5878 Count Two Three 2016 ACM/ICPC Asia Regional Qingdao Online 1001
I will show you the most popular board game in the Shanghai Ingress Resistance Team. It all started ...
- 数学--数论--Miller_Rabin判断一个大数是不是素数(随机算法)
前提知识 1,费马定理:ap−1=1(mod p)a^{p-1}=1(mod\ p)ap−1=1(mod p)