Spring Boot主要有如下核心功能:
1.独立运行的Spring项目
2.内嵌Servlet容器
3.提供starter简化Maven配置
4.自动配置Spring
5.准生产的应用监控
6.无代码生成和xml配置
使用Spring Tool Suite这个软件,可以直接new 一个Spring Starter Project,或者去Sping官网下载一个demo网址点击打开链接,或者创建一个Maven项目自己配置pom.xml
1.pom.xml的配置:这里添加了web模块方便测试
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.smxy</groupId> <artifactId>springboot</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>springboot Maven Webapp</name> <url>http://maven.apache.org</url> <!--文件的编码格式以及jdk的版本 --> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.12.RELEASE</version> <relativePath /> <!-- lookup parent from repository --> </parent> <!--下载地址换为阿里云的 --> <repositories> <repository> <id>maven-ali</id> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> <checksumPolicy>fail</checksumPolicy> </snapshots> </repository> </repositories> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!-- 热部署 --> <!-- devtools可以实现页面热部署(即页面修改后会立即生效, 这个可以直接在application.properties文件中配置spring.thymeleaf.cache=false来实现) --> <!-- 实现类文件热部署(类文件修改后不会立即生效),实现对属性文件的热部署。 --> <!-- 即devtools会监听classpath下的文件变动,并且会立即重启应用(发生在保存时机), 注意:因为其采用的虚拟机机制,该项重启是很快的 --> <!-- (1)base classloader (Base类加载器):加载不改变的Class,例如:第三方提供的jar包。 --> <!-- (2)restart classloader(Restart类加载器):加载正在开发的Class。 --> <!-- 为什么重启很快,因为重启的时候只是加载了在开发的Class,没有重新加载第三方的jar包。 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <!-- optional=true, 依赖不会传递, 该项目依赖devtools; 之后依赖boot项目的项目如果想要使用devtools, 需要重新引入 --> <optional>true</optional> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
2.创建一个启动,需要加上@SpringBootApplication注解,用于快捷配置启动类。
注意:APP配置类所在的包必须是最上层的,否侧,其他包的类配置将会失败
3.利用web模块来测试
package com.smxy.lq.controller; import java.util.Date; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import com.smxy.lq.pojo.User; @RestController public class UserController { @RequestMapping(value = "/hello") public Object hello() { return "spring -- boot"; } }
@RestController注解相当于@ResponseBody + @Controller合在一起的作用。
既可以返回json数据,也可以返回页面
4.返回json数据测试,写一个User类,然后返回user的json数据
package com.smxy.lq.controller; import java.util.Date; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import com.smxy.lq.pojo.User; @RestController public class UserController { @RequestMapping(value = "/hello") public Object hello() { return "spring -- boot"; } @RequestMapping("/jsonuser") public User jsonuser() { User user = new User(); user.setAge(18); user.setBirthday(new Date()); user.setName("小明"); return user; } }
返回json数据