---恢复内容开始---
Spring Boot可以轻松创建可以运行的独立的,生产级的基于Spring的应用程序。我们对Spring平台和第三方库进行了一种自以为是的观点,这样您就可以轻松上手了。大多数Spring Boot应用程序只需要很少的Spring配置。
您可以使用Spring Boot创建可以使用java -jar或更传统的war部署启动的Java应用程序 。我们还提供了一个运行“spring脚本”的命令行工具。
主要目标是:
为所有Spring开发提供从根本上更快且可广泛访问的入门体验。
开箱即用,但随着需求开始偏离默认值而迅速摆脱困境。
提供大型项目(例如嵌入式服务器,安全性,度量标准,运行状况检查和外部化配置)通用的一系列非功能性功能。
绝对没有代码生成,也不需要XML配置。
new-project
Group:组织信息,一般域名倒置
Artifact:项目id
Name:项目名
Package:包名
勾选web
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 https://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.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</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>
</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>
View Code
项目结构
程序启动入口SpringBootApplication
启动项目
tomcat已经启动 端口为8080
打开地址访问
添加controller
@RestController
public class TestController {
@RequestMapping(value = "/test",method = RequestMethod.GET)
public String test(){
return "test";
}
}
打开地址127.0.0.1:8080/test
项目配置文件
properties和yml同时存在的话,properties起效
application.properties
yml
如何创建yml文件
:号必须加空格
server:
servlet:
context-path: /my
port: 8081
从配置文件获取值
有关注解的消息介绍:
config的结构
获取多个属性时可以使用创建Bean的方式
//这个是加入到spring容器中
@Component
//这个是把类和我们的配置文件进行关联
@ConfigurationProperties(prefix = "boy")
public class Boy { private String name; private Integer age; 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; } @Override public String toString() { return "Boy{" + "name='" + name + '\'' + ", age=" + age + '}'; } }
@RestController
public class TestController {
@Autowired
private Boy boy;
@RequestMapping(value = "/test",method = RequestMethod.GET)
public String test(){
return "姓名"+boy.getName()+"年龄"+boy.getAge();
}
}
多个配置文件的调用
BOY对象时间、布尔值、map、list、嵌套对象格式
连接mysql
在pom.xml文件添加依赖
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
在applicaiton.yml添加配置信息
spring:
profiles:
active: dev
datasource:
# 新的启动类
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/test
username: root
password: root
jpa:
hibernate:
ddl-auto: create
show-sql: true
创建实体类
package com.example.demo.entity;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class Users {
@Id
@GeneratedValue
private Integer id;
private String name;
private Integer age;
//不能缺少的空参构造方法
public Users(){
}
@Override
public String toString() {
return "Users{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
'}';
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
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;
}
}
重启服务器
需要注意的是:当配置文件ddl-auto: create时每次启动都会重新创建表,里面的数据会被清空,所以我们换成update(hibernate基础知识)
spring - boot curd的基本操作
Integer代表ID的类型
Users代表实体类
创建Repository
package com.example.demo.Repository;
import com.example.demo.entity.Users;
import org.springframework.data.jpa.repository.JpaRepository;
public interface UsersRepository extends JpaRepository<Users,Integer> {
}
controller
@RestController
public class UserController {
@Autowired
private UsersRepository usersRepository;
@RequestMapping(value = "/user",method = RequestMethod.GET)
public List<Users> findUsersAll(){
List<Users> list = usersRepository.findAll();
return list;
}
}
添加用户
@RequestMapping(value = "/addUser",method = RequestMethod.GET)
public Users addUsers(){
Users u = new Users();
u.setName("eric");
u.setAge(18);
return usersRepository.save(u);
}
查找一个用户
@RequestMapping(value = "/find/{id}",method = RequestMethod.GET)
public Optional<Users> find(@PathVariable("id") Integer id){
Users u = new Users();
return usersRepository.findById(id);
}
删除
@RequestMapping(value = "/delUser/{id}",method = RequestMethod.GET)
public String delUser(@PathVariable("id") Integer id){
usersRepository.deleteById(id);
return "delete";
}
修改
注意提交数据的格式 当数据库没有这个id时,就会新增这个用户,而不会执行更新操作
@RequestMapping(value = "/update/{id}",method = RequestMethod.GET)
public Users update(@PathVariable("id") Integer id){
Users users = new Users();
users.setId(id);
users.setName("123");
users.setAge(18);
return usersRepository.save(users);
}
通过其他字段操作数据
public interface UsersRepository extends JpaRepository<Users,Integer> {
/**
*通过姓名查找
* @param name
* @return
*/
List<Users> findUserByName(String name);
}
@RequestMapping(value = "/findUserByName",method = RequestMethod.GET)
public List<Users> findUserByName(@PathParam("name") String name){
return usersRepository.findUserByName(name);
}