Spring bootjava
简介:是spring社区发布的一个开源项目,旨在帮助开发者更快更简单的构建项目,使用习惯优于配置,的理念让你的项目快速的跑起来,使用springboot能够不用,或者不多的配置文件。web
Spring boot 核心功能spring
独立运行spring项目:能够以jar包的形式独立进行运行 经过java –jar xxx.jar方式进行运行,不像以前的你还要打成一个war包放在webapp底下才能够。json
内嵌servlet容器:好比tomcattomcat
提供start简化maven配置:一个maven项目,使用spring-boot-start-web时,会自动加载spring-boot的依赖包springboot
自动配置springmvc
准生产的应用监控:提供http进行监控app
无代码生成和xml配置:主要经过条件注解来实现webapp
这个依赖会使得自动加载剩下的依赖,建立一个新的项目,要想让他运行起来,这个依赖是必须的,若是没有这个依赖你的项目是跑不起来的。maven
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代替其实也能够运行,缘由是这两个注解是一个相互包含的关系。