---恢复内容开始---

Spring Boot可以轻松创建可以运行的独立的,生产级的基于Spring的应用程序。我们对Spring平台和第三方库进行了一种自以为是的观点,这样您就可以轻松上手了。大多数Spring Boot应用程序只需要很少的Spring配置。

您可以使用Spring Boot创建可以使用java -jar或更传统的war部署启动的Java应用程序 。我们还提供了一个运行“spring脚本”的命令行工具。

主要目标是:

为所有Spring开发提供从根本上更快且可广泛访问的入门体验。

开箱即用,但随着需求开始偏离默认值而迅速摆脱困境。

提供大型项目(例如嵌入式服务器,安全性,度量标准,运行状况检查和外部化配置)通用的一系列非功能性功能。

绝对没有代码生成,也不需要XML配置。

new-project

idea springboot 加载外部jar包 idea添加springboot项目_java

Group:组织信息,一般域名倒置

Artifact:项目id

Name:项目名

Package:包名

 

idea springboot 加载外部jar包 idea添加springboot项目_spring_02

勾选web

idea springboot 加载外部jar包 idea添加springboot项目_java_03

 

 

 

idea springboot 加载外部jar包 idea添加springboot项目_spring_04

 

 

 pom.xml

idea springboot 加载外部jar包 idea添加springboot项目_java_05

idea springboot 加载外部jar包 idea添加springboot项目_配置文件_06

<?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

项目结构

idea springboot 加载外部jar包 idea添加springboot项目_配置文件_07

 

程序启动入口SpringBootApplication

 

 

idea springboot 加载外部jar包 idea添加springboot项目_java_08

 

 

 启动项目

idea springboot 加载外部jar包 idea添加springboot项目_java_09

 

 

 

idea springboot 加载外部jar包 idea添加springboot项目_spring_10

 

 

 tomcat已经启动 端口为8080

打开地址访问

idea springboot 加载外部jar包 idea添加springboot项目_配置文件_11

 

 

 添加controller

@RestController
public class TestController {
    @RequestMapping(value = "/test",method = RequestMethod.GET)
    public String test(){
        return "test";
    }
}

打开地址127.0.0.1:8080/test

idea springboot 加载外部jar包 idea添加springboot项目_配置文件_12

 

 项目配置文件

properties和yml同时存在的话,properties起效

application.properties

idea springboot 加载外部jar包 idea添加springboot项目_spring_13

 yml

如何创建yml文件

:号必须加空格

server:
  servlet:
    context-path: /my
  port: 8081

 

 

idea springboot 加载外部jar包 idea添加springboot项目_java_14

 

 从配置文件获取值

有关注解的消息介绍:

idea springboot 加载外部jar包 idea添加springboot项目_spring_15

 

 

idea springboot 加载外部jar包 idea添加springboot项目_spring_16

 

 

idea springboot 加载外部jar包 idea添加springboot项目_spring_17

 config的结构

idea springboot 加载外部jar包 idea添加springboot项目_java_18

 

 

 

 获取多个属性时可以使用创建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();
    }
}

idea springboot 加载外部jar包 idea添加springboot项目_配置文件_19

 

 多个配置文件的调用

BOY对象时间、布尔值、map、list、嵌套对象格式

idea springboot 加载外部jar包 idea添加springboot项目_java_20

 

 

 

 

 

idea springboot 加载外部jar包 idea添加springboot项目_java_21

 

 

idea springboot 加载外部jar包 idea添加springboot项目_配置文件_22

 

 

idea springboot 加载外部jar包 idea添加springboot项目_配置文件_23

 连接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;
    }
}

重启服务器

idea springboot 加载外部jar包 idea添加springboot项目_java_24

 

 

 需要注意的是:当配置文件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;
    }
}

idea springboot 加载外部jar包 idea添加springboot项目_spring_25

 

 添加用户

@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);
    }

idea springboot 加载外部jar包 idea添加springboot项目_java_26