springboot-helloworld项目的搭建
这里使用的IEAD版本为2016.3.2
1.创建一个idea工程,选择Spring Initializr,jdk版本,下一步。
2.填写合适的项目信息,具体请参考下图。
3.只需要勾选Web栏里的Web,下一步。
4.项目初始化完成后,删除下图所选的三项。到这里,一个简单的springboot项目就搭建好了。
springboot-helloworld项目的启动方式
首先新建一个HelloController.java
@RestController
public class HelloController {
@RequestMapping("/hello")
public String hello(){
return "hello spring boot!";
}
}
方式1: 直接在以下类里运行这个main函数
@SpringBootApplication
public class SpringbootHelloworldApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootHelloworldApplication.class, args);
}
}
方式2: 用命令行进入到这个项目的所在目录,运行命令:mvn spring-boot:run
方式3: 用命令行进入到这个项目的所在目录,运行命令:mvn install
,编译完后进入到target目录下,会多出来一个springboot-helloworld-0.0.1-SNAPSHOT.jar的文件,执行命令:java -jar springboot-helloworld-0.0.1-SNAPSHOT.jar
springboot-helloworld项目的属性配置
resources/application.properties这个配置文件在springboot里建议改为使用application.yml文件,它相对前者来说配置更加简便。
先来看看application.yml的内容:
server:
port: 8080 #端口号
context-path: /hello #项目访问的根路径
#① 设置基本属性,在controller里使用@Value获取值
firstName: futao
age: 27
#② 在配置里引入配置
content: "(开发环境)my name is ${firstName},and ${age}"
#③ 第①点里属性如果多了的话,配置起来会很麻烦,这里可以更加简化(作为一个分组)
person:
secondName: yuqiaoyun
sex: girl
address: 杭州
先从以上的第①点开始,配置基本属性就可以在controller里使用@Value获取值
@Value("${firstName}")
private String firstName;
@Value("${age}")
private Integer age;
第②点,配置里可以继续引入配置,
@Value("${content}")
private String content;
content属性内容为:(开发环境)my name is futao,and 27
第③点,基本属性如果太多的话,配置起来太麻烦,controller里获取属性值的时候也要不断的新增@Value,代码就会显得很臃肿。这里的第③点采用分组的形式,只需新建一个配置类PersonProperties.java,它的作用就是可以将配置文件里的属性映射到java类属性里。
@Component
@ConfigurationProperties(prefix = "person")//在配置文件里,获取前缀是person的配置
public class PersonProperties {
private String secondName;
private Integer age;
private String address;
public String getSecondName() {
return secondName;
}
public void setSecondName(String secondName) {
this.secondName = secondName;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
HelloController.java里调用下即可获取到配置文件里的属性值。
@RestController
public class HelloController {
@Autowired
private PersonProperties personProperties;
@RequestMapping("/hello")
public String hello(){
return personProperties.getSecondName();
}
}
springboot-helloworld项目的环境切换
场景: 在公司开发项目一般都是用的开发环境dev,还有测试环境test,而代码要部署现场就得切换成生产环境。我们项目一般要切换到生产环境的时候,不会直接对着application.yml配置文件修改各个属性的值,这样改效率太低,也容易出错,springboot有了很好的解决办法。
首先,将原有的application.yml复制两份出来,分别重命名为application-dev.yml和application-prod.yml。
application.yml内容如下:
spring:
profiles:
active: prod
只需要修改application.yml配置文件里的spring.profiles.active属性值,就能完成环境的切换
如果spring.profiles.active=dev,则配置文件使用application-dev.yml
如果spring.profiles.active=prod,则配置文件使用application-prod.yml
注意: 如果配置写在以上application.yml里,表示该配置以及prod配置都能被spring加载。
//未完待续!!!