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代替其实也可以运行,原因是这两个注解是一个相互包含的关系。
转载于:https://www.cnblogs.com/chendezhen/p/10760720.html
SpringBoot注解分析相关推荐
- SpringBoot系列三:SpringBoot基本概念(统一父 pom 管理、SpringBoot 代码测试、启动注解分析、配置访问路径、使用内置对象、项目打包发布)...
声明:本文来源于MLDN培训视频的课堂笔记,写在这里只是为了方便查阅. 1.了解SpringBoot的基本概念 2.具体内容 在之前所建立的 SpringBoot 项目只是根据官方文档实现的一个基础程 ...
- @SpringBootApplication注解分析
转自:https://www.cnblogs.com/duanxz/p/3756364.html @SpringBootApplication注解分析 首先我们分析的就是入口类Application的 ...
- SpringBoot注解--@SpringBootApplication/@MapperScan/自定义启动类注解
原文网址:SpringBoot注解--@SpringBootApplication/@MapperScan/自定义启动类注解_IT利刃出鞘的博客-CSDN博客 简介 本文介绍SpringBoot启动类 ...
- 十、springboot注解式AOP(@Aspect)统一日志管理
springboot注解式AOP(@Aspect)统一日志管理 简介 AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功 ...
- springboot 启动分析【难点】——如何自动扫描 @SpringBootApplication||如何加载自动配置类 @EnableAutoConfiguration||如何加载前端控制器
springboot 启动分析[难点] 自动扫描的特点 默认扫描与 启动类 同级的所有包及其子包都可以自动扫描 如果不可要使用@ComponentScan(basePackage={"&qu ...
- SpringBoot注解大全(转)
原文链接:[springBoot系列]--springBoot注解大全 一.注解(annotations)列表 @SpringBootApplication:包含了@ComponentScan.@C ...
- spring-boot注解详解(三)
1.SpringBoot/spring @SpringBootApplication: 包含@Configuration.@EnableAutoConfiguration.@ComponentScan ...
- spring-boot注解详解(一)
spring-boot注解详解(一) @SpringBootApplication @SpringBootApplication = (默认属性)@Configuration + @EnableAut ...
- @configuration注解_超级全面的 SpringBoot 注解介绍,每一个用途都应该清晰
一.注解(annotations)列表 1.@SpringBootApplication 包含了@ComponentScan.@Configuration和@EnableAutoConfigurati ...
最新文章
- find ip from hostname or find hostname from ip
- IP地址不够了,有办法吗?
- aspx-cs-dll :在部署后就让所有的aspx处于已经编译成dll的状态
- [C++] 为什么Linux需要itoa函数
- 2021年信息系统项目管理师考试大纲
- Python基础06-Python异常处理
- golang变量定义细节及beego环境搭建细节记录
- c语言商店自动销售,c语言商店商品管理系统设计报告与源代码.doc
- arcgis安装license的问题
- SQL 与NoSQL
- 前端开发面试题总结之——JAVASCRIPT.One
- 戴着口罩也要开心过年吖!
- StudyTonight 中文系列教程【翻译完成】
- html 调用c#dll中的控件,C#实现反射调用动态加载的DLL文件中的方法和在窗体中加载DLL文件的用户控件...
- UGUI LongText
- 用C语言开发最简单的小游戏(弹跳小球)
- 常用纽扣电池的型号对照表
- [汇]我常去逛的iOS干货文章、blog等
- AlphaPose环境配置与测试
- 一文读懂元数据的概念、分类及作用
热门文章
- python 获取点击按钮名称_python如何获取tkinter组件的名称?比如按下多个Button中的一个,返回这个被按下的Button的text?...
- dplyr | 数据导入和预处理的常用函数
- 前端,后端,全栈哪个好找工作?
- 如何规划前端工程师职业发展路线?
- 国内现在web前端高手薪资都拿多少?
- 程序员:“我放弃了年薪 20 万的 Offer” 你知道为什么吗?
- 为什么复制粘贴格式总是出错_想把图片转换成pdf格式怎么做?你找对方法了吗...
- 51单片机指针c语言,单片机C语言教程:C51指针的使用
- docker create_云计算-Docker个人学习笔记
- 软件质量保证计划_质量保证QA与质量控制QC