springboot
ddatsh
Spring Boot做了那些没有它你也会去做的Spring Bean配置
“习惯优于配置”的理念让项目快速运行起来
容易创建一个独立运行(bootable jar,内嵌Servlet容器)、准生产级别的基于Spring框架的项目,使用Spring Boot你可以不用或者只需要很少的Spring配置
核心魔法
- 自动配置:针对很多Spring应用程序常见的应用功能,Spring Boot能自动提供相关配置
- 起步依赖:告诉Spring Boot需要什么功能,它就能引入需要的库
- Actuator:可度量
传统Spring MVC开发Hello World Web步骤
- 项目结构,Maven pom.xml,Spring MVC和Servlet API这些依赖(可用mvn archetype:generate -DarchetypeCatalog=internal生成 template)
- web.xml(或WebApplicationInitializer实现),声明Spring的DispatcherServlet
- Spring MVC的Spring配置
- 一控制器类,以“hello World”相应HTTP请求
- Tomcat
只有一个东西是和Hello World功能相关的,即控制器,剩下的都是Spring开发的Web应用程序必需的通用模板
spring boot
Spring Initializr的一些方法
- Idea
- http://start.spring.io/
- springboot cli
pom
生成出来的默认用的parent
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>x.x.x.RELEASE</version>
</parent>
不喜欢可改成
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>x.x.x.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
改Spring Data版本
<spring-data-releasetrain.version>Fowler-SR2</spring-data-releasetrain.version>
</properties>
import 方式得
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-releasetrain</artifactId>
<version>Fowler-SR2</version>
<scope>import</scope>
<type>pom</type>
</dependency>
version 可取
- BUILD-SNAPSHOT - current snapshots
- M1, M2 etc. - milestones
- RC1, RC2 etc. - release candidates
- RELEASE - GA release
- SR1, SR2 etc. - service releases
启动
- main 方法
- mvn spring-boot:run
- java -jar
properties
application.properties
com.ddatsh.name="dd"
@RestController
public class UserController {
@Value("${com.ddatsh.name}")
private String name;
@RequestMapping("/user")
public String hello() {
return name;
}
}
属性太多,一个个绑定到属性字段上太累
ConfigBean.java类+@ConfigurationProperties(prefix = “com.ddatsh”)来指明使用哪个
import org.springframework.boot.context.properties.ConfigurationProperties;
@ConfigurationProperties(prefix = "com.ddatsh")
public class ConfigBean {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
入口类
@EnableConfigurationProperties({ConfigBean.class})
使用
@RestController
public class UserController {
@Autowired
ConfigBean configBean;
@RequestMapping("/user")
public String hello() {
return configBean.getName();
}
}
参数引用
com.ddatsh.host="127.0.0.1"
com.ddatsh.port="1234"
com.ddatsh.addr={com.ddatsh.host}:{com.ddatsh.port}
ref
Spring Boot干货系列