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注解分析的更多相关文章

  1. SpringBoot注解分析解释

    使用注解的优势: 1.采用纯java代码,不在需要配置繁杂的xml文件 2.在配置中也可享受面向对象带来的好处 3.类型安全对重构可以提供良好的支持 4.减少复杂配置文件的同时亦能享受到springI ...

  2. SpringBoot系列三:SpringBoot基本概念(统一父 pom 管理、SpringBoot 代码测试、启动注解分析、配置访问路径、使用内置对象、项目打包发布)

    声明:本文来源于MLDN培训视频的课堂笔记,写在这里只是为了方便查阅. 1.了解SpringBoot的基本概念 2.具体内容 在之前所建立的 SpringBoot 项目只是根据官方文档实现的一个基础程 ...

  3. springboot注解使用说明

    springboot注解 @RestController和@RequestMapping注解 我们的Example类上使用的第一个注解是 @RestController .这被称为一个构造型(ster ...

  4. springBoot系列-->springBoot注解大全

    一.注解(annotations)列表 @SpringBootApplication:包含了@ComponentScan.@Configuration和@EnableAutoConfiguration ...

  5. @Tranactional 注解分析

    Spring可以通过注解@Transactional来为业务逻辑层的方法(调用DAO完成持久化动作)添加事务能力,如下是@Transactional注解的定义 @Tranactional注解分析 作用 ...

  6. SpringBoot注解大全(转)

    原文链接:[springBoot系列]--springBoot注解大全 一.注解(annotations)列表 @SpringBootApplication:包含了@ComponentScan.@Co ...

  7. springboot注解大全

    springboot注解:@Service: 注解在类上,表示这是一个业务层bean@Controller:注解在类上,表示这是一个控制层bean@Repository: 注解在类上,表示这是一个数据 ...

  8. SpringBoot注解验证参数

    SpringBoot注解验证参数 废话不多说,直接上表格说明: 注解 作用类型 解释 @NotNull 任何类型 属性不能为null @NotEmpty 集合 集合不能为null,且size大于0 @ ...

  9. SpringBoot注解把配置文件自动映射到属性和实体类实战

    SpringBoot注解把配置文件自动映射到属性和实体类实战 简介:讲解使用@value注解配置文件自动映射到属性和实体类 1.配置文件加载 方式一 1.Controller上面配置 @Propert ...

随机推荐

  1. Jest 前端单元测试工具

    Jest和enzyme 前端单元测试工具 什么是Jest? Jest是一个令人愉悦的JavaScript测试框架,其重点是简单性. 它适用于使用以下项目的项目:Babel,TypeScript,Nod ...

  2. apache虚拟主机配置-域名/IP和端口两种配置

    由于百度上有非常详细的资料,我这里就转载而已:https://jingyan.baidu.com/article/4f7d5712d48a191a201927e0.html

  3. python实现逻辑回归

    首先得明确逻辑回归与线性回归不同,它是一种分类模型.而且是一种二分类模型. 首先我们需要知道sigmoid函数,其公式表达如下: 其函数曲线如下: sigmoid函数有什么性质呢? 1.关于(0,0. ...

  4. 【集群实战】inotify

    1. inotify简介 Inotify是一种强大的,细粒度的,异步的文件系统事件监控机制(软件). linux内核从2.6.13起,加入了Inotify支持,通过Inotify可以监控文件系统中添加 ...

  5. 【集群实战】NFS网络文件共享服务

    1. NFS介绍 1.1 什么是NFS? NFS是Network File System的缩写,中文意思是网络文件系统. 它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录. ...

  6. Retrofit的文件上传和进度提示

    2019独角兽企业重金招聘Python工程师标准>>> 1.写一个上传监听的接口: /** * Created by Zzm丶Fiona on 2017/7/31. */ publi ...

  7. Eclipse Collections:让Java Streams更上一层楼

    \ 关键要点 \\ Eclipse Collections是一个高性能的Java集合框架,为原生JDK集合增加了丰富的功能.\\t Streams是JDK的一个非常受欢迎的功能,但它缺少了一些特性,严 ...

  8. extend()和append()区别

    extend()和append()都可以用来添加. 例: a = [1,2,3,4,5,6] b = [7,8,9,10] c = {'aa':123,'bb':456,'cc':789} 1.    ...

  9. centos6.5宽带拨号上网

    CentOS6以后要安装rp-pppoe这个软件,centos之前的版本是adsl-setup命令安装. (1)查看是否安装 #rpm -qa|grep rp-pppoe 没有内容输出则没安装,若可以 ...

  10. 图论--差分约束--POJ 3159 Candies

    Language:Default Candies Time Limit: 1500MS   Memory Limit: 131072K Total Submissions: 43021   Accep ...