SpringBoot快速入门_CodingPark编程公园

基础知识

在这里插入图片描述
在这里插入图片描述
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

我们通过Spring Boot搭建Web项目的后端服务

实战项目

在这里插入图片描述
在这里插入图片描述

  • Main - 【GirlApplication】
  • Controller - 与前端连接 【GirlController】
  • domain - 实体类(与数据库对应)【Girldb】

等等


按学习与配置顺序书写✍️

在这里插入图片描述

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.3.2.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.imooc</groupId>
    <artifactId>girl</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>girl</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>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>


    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

application-dev.yml (开发版本)

server:
  port: 8080
cupSize: B
age: 18

content: "cuoSize: ${cupSize}, age: ${age}"

girl:
  cupSize: B
  age: 18


application-prod.yml (正式版本)

server:
  port: 8081
cupSize: B
age: 18

content: "cuoSize: ${cupSize}, age: ${age}"

girl:
  cupSize: F
  age: 18


application.yml (正式抉择)

spring:
  profiles:
    active: dev

  datasource:
      driver-class-name: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://localhost:3306/girl
      username: root
      password: root


  jpa:
    hibernate:
      ddl-auto: update
    show-sql: true

HelloController.java

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

package com.imooc.girl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;

/**
 * @Author: TEAM-AG
 * @Description: 与前端连接 <Controller>
 * @Date: Created in 21:55 2020-08-10
 * @Modified By:
 */

@RestController
@RequestMapping("/hello")
public class HelloController {

//    @Value("${cupSize}")
//    private String cupSize;
//    @Value("${age}")
//    private Integer age;
//    @Value("${content}")
//    private String content;

    @Autowired
    private GirlProperties girlProperties;

    @GetMapping(value = {"/say{id}"})
    public String say(@PathVariable("id") Integer id){
        return "TEAM-AG " + id + girlProperties.getCupSize() + girlProperties.getAge();
    }


//    @RequestMapping(value = {"/say"}, method = RequestMethod.GET)
//    public String say(@RequestParam(value = "id", required = false, defaultValue = "0") Integer id){       // 默认值
//        return "TEAM-AG " + id + girlProperties.getCupSize() + girlProperties.getAge();
//    }


}



GirlProperties

在这里插入图片描述

package com.imooc.girl;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * @Author: TEAM-AG
 * @Description: 实体类 <domain>
 * @Date: Created in 22:25 2020-08-10
 * @Modified By:
 */
@Component
@ConfigurationProperties(prefix = "girl")       // yml 对应的映射
public class GirlProperties {
    private String cupSize;
    private Integer age;

    public String getCupSize() {
        return cupSize;
    }

    public void setCupSize(String cupSize) {
        this.cupSize = cupSize;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
}



Girldb

package com.imooc.girl;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

/**
 * @Author: TEAM-AG
 * @Description: 与数据库对应 <db>
 * @Date: Created in 19:42 2020-08-13
 * @Modified By:
 */
@Entity
public class Girldb {

    @Id
    @GeneratedValue
    private Integer id;

    private String cupSize;

    private Integer age;


    public Girldb() {           // 必须有一个无参 构造方法
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getCupSize() {
        return cupSize;
    }

    public void setCupSize(String cupSize) {
        this.cupSize = cupSize;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
}



GirlRepository

在这里插入图片描述

package com.imooc.girl;

import org.springframework.data.jpa.repository.JpaRepository;

import java.util.List;

/**
 * @Author: TEAM-AG
 * @Description: 接口继承 Jpa
 * @Date: Created in 20:01 2020-08-13
 * @Modified By:
 */
public interface GirlRepository extends JpaRepository<Girldb, Integer> {

    // 接口本口 对数据库的操作都靠它!


    // 查年龄
    public List<Girldb> findByAge(Integer age);



}


GirlController

在这里插入图片描述

package com.imooc.girl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Optional;

/**
 * @Author: TEAM-AG
 * @Description: 与前端连接 <Controller>
 * @Date: Created in 19:54 2020-08-13
 * @Modified By:
 */
@RestController
public class GirlController {


    @Autowired
    private GirlRepository girlRepository;

    @Autowired              // 事务
    private GirlService girlService;


/**
 *
 * @Description:
 * 查询 女生列表
 * @auther: TEAM-AG
 * @date: 20:10 2020-08-13
 * @param: []
 * @return: java.util.List<com.imooc.girl.Girldb>
 *【important】=> 用哪个,开哪个!
 */

//    @GetMapping(value = "/girls")                     // @查所有
//    public List<Girldb> girldbList(){
//        return girlRepository.findAll();
//
//    }

//    // 查询某个女生
//    @GetMapping(value = "/girls")                       // @查某个id
//    public Girldb Onegirldb(@RequestParam("id") Integer id){
//        return girlRepository.findById(id).orElse(null);
//
//    }

//       // 查询某个女生
//    @GetMapping(value = "/girls")                       // @查某个age  // 需要在 Girlrepository中加个接口
//    public List<Girldb> Onegirldb(@RequestParam("age") Integer age){
//        return girlRepository.findByAge(age);
//
//    }



/**
 *
 * @Description:
 * 插入
 * @auther: TEAM-AG
 * @date: 21:15 2020-08-13
 * @param: [cupSize, age]
 * @return: java.util.List<com.imooc.girl.Girldb>
 *【important】=> 用哪个,开哪个!
 */

//    @PostMapping(value = "/girls")                                    // @插入后看所有
//    public List<Girldb> addgirl(@RequestParam("cupSize") String cupSize,
//                                @RequestParam("age") Integer age){      // 需要参数咯
//
//        Girldb girl = new Girldb();
//        girl.setCupSize(cupSize);
//        girl.setAge(age);
//        girlRepository.save(girl);
//
//        return girlRepository.findAll();
//
//    }

//    @PostMapping(value = "/girls")                                   // @插入后看那个
//    public Girldb addgirl(@RequestParam("cupSize") String cupSize,
//                                @RequestParam("age") Integer age){      // 需要参数咯
//
//        Girldb girl = new Girldb();
//        girl.setCupSize(cupSize);
//        girl.setAge(age);
//
//        return girlRepository.save(girl);
//
//    }



    @PostMapping(value = "/girls/cooinserttwo")
    public void girlTwo(){
        girlService.insertTwo();
    }






/**
 *
 * @Description:
 * 更新
 * @auther: TEAM-AG
 * @date: 21:30 2020-08-13
 * @param:
 * @return:
 *
 */



//@PostMapping(value = "/girls")
//public Girldb updategirl(@RequestParam("id") Integer id,
//                         @RequestParam("cupSize") String cupSize,
//                         @RequestParam("age") Integer age){      // 需要参数咯
//
//    Girldb girl = new Girldb();
//    girl.setId(id);
//    girl.setCupSize(cupSize);
//    girl.setAge(age);
//
//    return girlRepository.save(girl);
//
//
//}


/**
 *
 * @Description:
 * 删除
 * @auther: TEAM-AG
 * @date: 21:30 2020-08-13
 * @param:
 * @return:
 *
 */

//@DeleteMapping(value = "/girls")
//    public void girlDelete(@RequestParam("id") Integer id){
//    girlRepository.deleteById(id);
//
//}




}



GirlService

package com.imooc.girl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

/**
 * @Author: TEAM-AG
 * @Description: 事务管理
 * 买商品与扣钱,两者都OK则OK,任何一个不通过交易都算失败
 * @Date: Created in 10:29 2020-08-14
 * @Modified By:
 */

@Service
public class GirlService {

    @Autowired
    private GirlRepository girlRepository;

    @Transactional                              //事务
    public void insertTwo(){

        Girldb girlA = new Girldb();
        girlA.setCupSize("A");
        girlA.setAge(18);
        girlRepository.save(girlA);

        Girldb girlB = new Girldb();
        girlA.setCupSize("C");
        girlA.setAge(18);
        girlRepository.save(girlB);


    }



}



在这里插入图片描述

评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符 “速评一下”
©️2020 CSDN 皮肤主题: 鲸 设计师:meimeiellie 返回首页
实付 79.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值