Spring Boot (1)
新建一个spring boot项目
会生成这样的一个目录结构
如上图所示,Spring Boot的基础结构共三个文件:
- src/main/java 程序开发以及主程序入口
- src/main/resources 配置文件
- src/test/java 测试程序
可以通过修改 application.properties 配置文件来改变启动的端口号默认地址等,相当于.NET 中的config文件
server.port=8080
idea中支持yml,且yml的写法偏面向对象,所以可以将.properties 删除,新建一个application.yml 做为配置文件,注意每个:后面需要跟一个空格
server: port: 8080 test: name: 测试 remarks: 11122333
上面修改了启动端口为8080 ,以及默认地址,新建一个控制器,以Controller结尾
@RestController public class HelloController { @RequestMapping(value = "/hello",method = RequestMethod.GET) public String hello(Model m) { return "第一个 boot!1"; } }
输入地址访问
注解 @RestController 相当于 @ResponseBody + @Controller
如果需要返回到指定页面,则需要用 @Controller配合视图解析器InternalResourceViewResolver。
如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。
读取配置文件、热部署
1、修改application.yml
server: port: 8080 test: name: 测试 remarks: 11122333
修改pox 添加jar包
<!--热部署--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
</plugins>
</build>
修改IDEA
Ctrl+shift+alt+/ 回车 找到compiler.automake.allow.when.app.running 勾选
新增一个类,读取配置,使用@ConfigurationProperties(prefix = "test")读取 test需要和yml中的节点名称保持一致
@Component @ConfigurationProperties(prefix = "test") public class TestConfig { private String name; private String remarks; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getRemarks() { return remarks; } public void setRemarks(String remarks) { this.remarks = remarks; } }
新建一个Controller ,java中控制器都以Controller 结尾,定义私有的属性TestConfig,使用@Autowired注入
@RestController public class HelloController { @Autowired private TestConfig test; @RequestMapping(value = "/hello",method = RequestMethod.GET) public String hello(Model m) { return "第一个 boot!1"; } @GetMapping("/config") public String getConfig(){ return test.getName()+" 11 22"+test.getRemarks(); } }