springboot的使用一
Posted zmq-2743528283
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot的使用一相关的知识,希望对你有一定的参考价值。
springboot的使用一
springboot是spring社区比较新的一个项目,帮助开发者更容易使用spring应用,springboot能方便我们更快的进行spring的入门体验,这也是一种固定的,约定优于配置风格的框架。springboot基础知识:https://docs.spring.io/spring-boot/docs/1.2.3.RELEASE/reference/html/index.html
springboot 有下面几个特性:
为spring的开发者提供更快的入门体验
开箱即用,没有代码生成,也无需xml配置,同时也可以修改默认值来满足特定的需求
提供一些大型项目中常见的非功能性特性,如嵌入式、安全、指标、健康测试等
Spring Boot 并不是对Spring功能上的增强,而是提供了一种快速使用Spring的方式
相对于以前我们使用的spring,springBoot增加了《parent》 而parent中大量的配置好了依赖管理,在自己的依赖中使用不需要重新这个依赖的《version》版本号
spring默认使用的是jdk1.6 , 我们想使用jdk1.8需要在pom.xml的属性里面添加java.version
1.8
spring-boot-starter-*这样的依赖就能支持具体的某个功能,例如:spring-boot-starter-web
依赖管理https://docs.spring.io/spring-boot/docs/1.2.3.RELEASE/reference/html/using-boot-build-systems.html#using-boot-starter-poms
使用spring boot 热部署 简单的来说,就是每次保存之后,自动编译成字节码文件,然后运行,这里我们使用spring loaded spring-boot-devtools 这两个依赖包实现
org.springframework.boot
spring-boot-devtools
true
注意一点,如果没有编译的话不会出现运行,只有编译代码修改了,才会进行编译修改,自动创建class文件,然后热部署工具创建新的类加载器,加载改变后的class文件www.chinamaofa.com由于热部署的时候是产生了新的类加载器,我们的一个类可能在虚拟机中存在两个类,比如代码中就一个 User 类,但是虚拟机中会存在两个 User ,虽然是同一个 Class 文件,但是却是两个独立的类,这个要清楚
org.springframework.boot
spring-boot-devtools
true
注解:
@RestControllar : 写的是web应用,就要用到这个注解,这个注解相当于@Controllar和@ResponseBody
@EnableAutoConfiguration:springboot会根据你的jar包的依赖来自动配置项目,例如当我的项目下面有HSQLDB的依赖时,Springbooth会http://sz.chinamaofa.com/zyxtf/14860.html 默认创建的内存数据库的数据源DataSource,如果你自己创建了,DataSource,springboot就不会创建默认的DataSource。如果不想SpringBoot自动创建,添加属性exclude
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
因此Spring Boot提供了@SpringBootApplication注解代替@Configuration,@EnableAutoConfiguration,@ComponentScan三个注解
@Configuration中 配置主要的source(建议),通常main方法类也作为@Configuration的一个好的选择,您不需要将所有的@Configuration放在一个类中。 @Import注解可用于导入其他配置类。 或者,您可以使用@ComponentScan自http://gz.chinamaofa.com/tuofa_zhiliao/2727.html动扫描所有Spring组件,包括@Configuration类。然后,您可以使用的@ImportResource注释来加载XML配置文件。
如果您发现正在使用一些不需要的自动配置类,可以使用@EnableAutoConfiguration的exclude属性来禁用它们。
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
如果将应用程序类放在根包中构建代码,则可以使用@ComponentScan而不使用任何参数,所有应用程序组件(@Component,@Service,@Repository,@Controller等)将自动注册为Spring Bean。
springboot 默认的字符集是UTF-8
spring会从classpath下的/config目录查找application.properties或application.yml。
/config优先于classpath根目录
@ConfigurationProperties 对应对象的属性注入
my.name=Isea533my.port=8080my.servers[0]=dev.bar.commy.servers[1]=foo.bar.com
@ConfigurationProperties(prefix="my")public class Config { private String name; private Integer port; private List servers = new ArrayList(); public String geName(){ return this.name; } public Integer gePort(){ return this.port; } public List getServers() { return this.servers; }}
Spring Boot 还支持嵌套属性注入,例如:
name=isea533jdbc.username=rootjdbc.password=root
@ConfigurationPropertiespublic class Config { private String name; private Jdbc jdbc; class Jdbc { private String username; private String password; //getter... } public Integer gePort(){ return this.port; } public Jdbc getJdbc() { return this.jdbc; }}
以上是关于springboot的使用一的主要内容,如果未能解决你的问题,请参考以下文章
深入springboot原理——一步步分析springboot启动机制(starter机制)
深入springboot原理——一步步分析springboot启动机制(starter机制)
springboot:基础学习一 linux下后台启动springboot项目