---恢复内容开始---
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>
项目结构
程序启动入口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文件https://www.cnblogs.com/ssjf/p/11445404.html
:号必须加空格
server: servlet: context-path: /my port: 8081
从配置文件获取值
有关注解的消息介绍:https://www.cnblogs.com/ssjf/p/11446462.html
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); }
参考:https://baijiahao.baidu.com/s?id=1608301601154521261&wfr=spider&for=pc