一、引入
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
SpringBoot所具备的特征有:
(1)可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs;
(2)内嵌Tomcat或Jetty等Servlet容器;
(3)提供自动配置的“starter”项目对象模型(POMS)以简化Maven配置;
(4)尽可能自动配置Spring容器;
(5)提供准备好的特性,如指标、健康检查和外部化配置;
(6)绝对没有代码生成,不需要XML配置。
二、使用iDEA的创建过程
三、简单地测试
在demo包下创建controller包以及测试类
package springbootdemo.demo.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/index")
public class IndexController {
@RequestMapping("test1")
public String test1(){
return "hello!Springboot!";
}
}
启动项目,若见spring的字样即成功,在浏览器中输入http://localhost:8080/index/test1
关于@RestController与@Controller的区别:请见此文
四、进行简单地配置
1.读取核心配置文件
1)@Value方式
${}中为application.properties中的键值,以下代码在原controller测试类中进行添加
@Value("${server.port}")
private String port;
@RequestMapping("portCheck")
public String test2(){
return "port:"+port;
}
2)enviroment方式‘
// 核心配置文件读取 (Environment)
// @Autowired
// private Environment env;
2.读取自定义properties文件
1)在resours创建properties文件
2.在controller中创建获取信息类
package springbootdemo.demo.controller;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;
@Component
@PropertySource(value = "classpath:/test.properties")
@ConfigurationProperties(prefix = "person")
public class PersonSetting {
private String name;
private String age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
3.在controller测试类中注入bean并使用
@Autowired
PersonSetting personSetting;
@RequestMapping("nameCheck")
public String test4(){
return "name:"+personSetting.getName()+" age:"+personSetting.getAge();
}
Autowired与new对象的区别https://blog.csdn.net/p358278505/article/details/78404828
3.log配置
采用默认的logback
只需在application.properties进行配置
spring.profiles.active=dev
logging.level.root=INFO
logging.level.org.springframework.web=DEBUG
logging.file.path=/Users/lyf/Desktop/demo/src/main/logs
logging.pattern.console=%d{yyyy/MM/dd-HH:mm:ss} [%thread] %-5level%logger- %msg$n
logging.pattern.file=%d{yyyy/MM/dd-HH:mm:ss} [%thread] %-5level%logger- %msg$n
4.web层的使用(thymeleaf)
1)pom.xml 中引入 thymeleaf-spring5
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring5</artifactId>
</dependency>
2)创建User model进行测试
package springbootdemo.demo.model;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
public class User {
private String name;
private int age;
public User(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public static List<User> getUsers(){
List<User> Users=new ArrayList<User>();
for(int i=0;i<5;i++){
User user=new User("x",12);
Users.add(user);
}
return Users;
}
}
3)在templates中创建html,并引入
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<table>
<thead>
<tr>name</tr>
<tr>age</tr>
</thead>
<tbody>
<tr th:each="user:${users}">
<td th:text="${user.name}"></td>
<td th:text="${user.age}"></td>
</tr>
</tbody>
</table>
</body>
</html>