springboot入門(idea)


   學習東西需要記錄,不然很容易忘記。很久之前就學習了springboot,在學習Vue前端框架的時候需要寫一個增刪改查的demo。迅速想到了springboot,學習很久了,springBoot的東西都忘得差不多了。於是重新開始學習一次。(誰叫咱記憶力不佳)。下面正式開始把。

 一、建立springboot項目

  1、打開IDEA點擊spring initalizr 

  

 

 

   2、點擊下一步

 

 

  3、勾選springboot版本 選擇web

 

 

 4、完成springboot搭建 項目結構

 

5、maven中的jar包

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

 

 

6、檢驗是否成功 創建一個簡單的HelloController

@RestController
public class HelloController {

    @RequestMapping("/hello")
    public String hello() {
        return "hello world";
    }

}

點擊箭頭啟動項目

 瀏覽器訪問

   在瀏覽器輸入http://localhost:8080/hello 打印出hello 即創建springboot項目成功。

 

 

 

 

 

 

二、基礎配置

 1、springboot 配置application 推薦使用yml減少配置代碼量

   在resource下面建立一個application.yml配置

 

 可以配置tomcat端口和項目根路徑

 在頁面上輸入 localhost:8080/vue/hello 即可訪問

2、讀取配置文件

 

  創建一個 name值隨意

@RestController
public class HelloController {
    /**
     * 讀取配置文件
     */
    @Value("${name}")
    private  String name;


    @RequestMapping("/hello")
    public String hello() {
        return "hello world";
    }

    @RequestMapping("/say")
    public String say() {
        return "hello world"+name;
    }

}

  

在頁面輸入localhost:8080/vue/say  即可看到 打印信息 hello world老哥穩

 

3、讀取對象信息 (如果值一多,我們可以使用對象獲取配置文件信息)

 

 建立一個Person對象  

 

建立一個本地 Person獲取配置文件person信息

Component :注入到容器

ConfigurationProperties :用於讀取配置文件信息  person指名讀取配置文件名稱

@Component
@ConfigurationProperties(prefix = "person")
public class Person {

    private String name;

    private String id;


    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getId() {
        return id;
    }

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

}

  

@RestController
public class HelloController {
    /**
     * 讀取配置文件
     */
    @Value("${name}")
    private  String name;

    @Autowired
    private Person person;

    @RequestMapping("/hello")
    public String hello() {
        return "hello world";
    }

    @RequestMapping("/say")
    public String say() {
        return "hello world"+name;
    }

    @RequestMapping("/sayCar")
    public String sayCar() {
        return person.getId()+"hello world"+person.getName();

    }
}

  

4、獲取get 請求附帶的值  

RequestMapping 即可獲取從頁面獲取過來的值

輸入請求 localhost:8080/vue/value?id=10    在方法中即可獲取到id的值 

如果沒有我們可以給定一個默認值defaultValue = "0"

 @RequestMapping(value = "value" ,method = RequestMethod.GET)
    public String getValue(@RequestParam(value = "id",required = false ,defaultValue = "0") Integer id) {
        return "getValue:"+id.toString();

    }

5、多配置文件 我們可以設置 spring.profiles.active指定讓 springboot項目讀取讀取那一個配置文件,方便我們部署項目。active:可選擇 prod  dev等

 

三、數據庫連接 jpa

 maven依賴包

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


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

 

一些數據庫配置

server:
  port: 8088
  servlet:
    context-path: /vuedemo

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password: 123456
    url: jdbc:mysql://127.0.0.1:3306/vuedemo?serverTimezone=UTC&useSSL=false&allowPublicKeyRetrieval=true
  jpa:
    show-sql: true 

數據庫

DROP TABLE IF EXISTS `car`;
CREATE TABLE `car`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 11127 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

 創建bean

@Entity
public class Car {
    private String name;
    @Id
    @GeneratedValue(strategy= GenerationType.IDENTITY)
    private Integer id;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getId() {
        return id;
    }

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

創建dao

public interface CarDao extends JpaRepository<Car,Integer> {
}

創建service  impl

public interface CarService  {

    public List<Car> selectCarList();

    public Car addCar(Car car);

    public int deleteCar(Integer id);
}
@Service
public class CarServiceImpl implements CarService {
    @Autowired
    private CarDao carDao;

    @Override
    public List<Car> selectCarList() {
        return carDao.findAll();
    }


    @Override
    public Car addCar(Car car) {
        return carDao.save(car);
    }

    @Override
    public int deleteCar(Integer id) {
        carDao.deleteById(id);
        return 1;
    }
}

創建 controll

/**
 * ctrl +alt +b 快速查找子類實現
 */
@RestController
public class CarController {

    @Autowired
    private CarService carService;

    @RequestMapping("/getCarList")
    public List<Car> getCarList() {
        return carService.selectCarList();
    }

    @RequestMapping(value = "/addCarList")
    public Car addCarList(@RequestParam("name") String name){
        Car car=new Car();
        car.setName(name);
        return carService.addCar(car);
    }

    @RequestMapping("/deleteCarList")
    public int deleteCarList(@RequestParam("id") Integer id){
        return carService.deleteCar(id);
    }
}

一個簡單的增刪改查完成

查詢

 

 添加

 

 

刪除

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM