什么是Spring Boot?
随着动态语言的流行(Ruby,Groovy,Scala,Node.js),Java的开发显得格外的笨重,繁多的配置、低下的开发效率、复杂的部署流程以及第三方技术集成难度大。
在上述环境下,Spring Boot应运而生。它使用“习惯优于配置”(项目中存在大量的配置,此外还内置一个习惯性的配置,让你无须手动进行配置)的理念让项目快速的运行起来。使用Spring Boot很容易创建一个独立运行(运行jar,内嵌Servlet容器)、准生产级别的基于Spring 框架,使用Spring Boot可以不用或者很少的Spring配置。
优点:
1、快速构建项目。
2、对主流开发框架的无配置集成。
3、项目可独立运行,无须外部依赖Servlet容器。
4、提供运行时的应用监控。
5、极大的提高了开发、部署效率。
6、与云计算的天然集成。
Spring Boot快速入门
1.创建Project
2.创建Spring Initializr项目(Maven项目也可以)
3.设置Group、Artifact等...
4.可以不用选这些,选上后再pom文件会自动加入其依赖项
5.创建项目完成
6.创建好的项目会有以下这些,java中放置各类后台源码,resource存放资源文件,static存放前端的静态文件,templates存放html文件,application.properties里是各类配置信息。
7.设置pom.xml
<?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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.kevin.boot</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.1.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
<version>2.1.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.34</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
8.本人比较喜欢使用yml形式的文件,所有将application.properties改成application.yml
server:
port: 8080
servlet:
context-path: /demo
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/microservice
username: root
password: 123456
thymeleaf:
prefix: classpath:/templates/
cache: false
mvc:
static-path-pattern: /static/**
9.到templates文件中新建index.html文件
<!DOCTYPE html>
<html xmlns:th="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>Hello World:这是动态访问的页面</h1>
</body>
</html>
10.DemoApplication.java
package com.kevin.boot;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication
@MapperScan(basePackages = {"com.kevin.boot.mapper"})
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
11.UserController.java
package com.kevin.boot.controller;
import com.google.gson.Gson;
import com.kevin.boot.entity.User;
import com.kevin.boot.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
/**
* @author kevin
* @version 1.0
* @description
* @createDate 2019/1/3
*/
@Controller
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/")
public String index() {
// 动态访问页面
return "index";
}
@RequestMapping("/selectAll")
@ResponseBody
public String selectAll(){
List<User> users = userService.selectAll();
Gson gson = new Gson();
// 返回json数据
return gson.toJson(users);
}
}
12.User.java
package com.kevin.boot.entity;
import java.io.Serializable;
/**
* @author kevin
* @version 1.0
* @description
* @createDate 2019/1/3
*/
public class User implements Serializable {
private Integer id;
private String username;
private String name;
private Integer age;
private Double balance;
public User() {
}
public User(Integer id, String username, String name, Integer age, Double balance) {
this.id = id;
this.username = username;
this.name = name;
this.age = age;
this.balance = balance;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", name='" + name + '\'' +
", age=" + age +
", balance=" + balance +
'}';
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Double getBalance() {
return balance;
}
public void setBalance(Double balance) {
this.balance = balance;
}
}
13.UserMapper.java
package com.kevin.boot.mapper;
import com.kevin.boot.entity.User;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* @author kevin
* @version 1.0
* @description
* @createDate 2019/1/3
*/
public interface UserMapper {
@Select("select * from user")
List<User> selectAll();
}
14.UserService.java
package com.kevin.boot.service;
import com.kevin.boot.entity.User;
import java.util.List;
/**
* @author kevin
* @version 1.0
* @description
* @createDate 2019/1/3
*/
public interface UserService {
List<User> selectAll();
}
15.UserServiceImpl.java
package com.kevin.boot.service.impl;
import com.kevin.boot.entity.User;
import com.kevin.boot.mapper.UserMapper;
import com.kevin.boot.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author kevin
* @version 1.0
* @description
* @createDate 2019/1/3
*/
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public List<User> selectAll() {
return this.userMapper.selectAll();
}
}
16.访问动态页面:http://localhost:8080/demo/
17.访问得到json数据:http://localhost:8080/demo/selectAll
18.如果需要部署的话,在mvn命令中输入
mvn clean package
19.在cmd中到jar路径执行
java -jar demo-0.0.1-SNAPSHOT.jar
这个Springboot的项目就搞定了,也不需要部署到tomcat。可以直接用jar执行,也可以交给tomcat管理部署