SpringBoot快速入门详细步骤

        学完ssm框架后,开始着手学习springboot,下面是自己的一些总结和心得体会。


一.实现一个最简易的Springboots工程

        在new Module的时候不像原来创建maven工程,而要创建Spring Initializr工程:

 SpringBoot快速入门详细步骤_第1张图片

 SpringBoot快速入门详细步骤_第2张图片

package com.zqh.com.zqh.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @Author ZhangQihao
 * Rest模式
 */
@RestController //相当与ResponseBody(直接返回字符串、包装对象) + Controller(自动创建javaBean)的结合体
@RequestMapping("/books")
public class BookController {

    @GetMapping
    public String getById(){
        System.out.println("nb");
        return "springboots is running!";
    }
}

         使用SpringMVC和Spring5中学到的注解:
        @RestController //相当与ResponseBody(直接返回字符串、包装对象) + Controller(自动创建javaBean)的结合体。
        @RequestMapping("/books"):注明跳转地址
        @GetMapping:注明请求方式

直接启动即可返回结果。


二.具体解析

        为什么Springboot能够化繁为简,用少量的代码完成复杂的配置、工程配置的功能呢?
SpringBoot快速入门详细步骤_第3张图片

2.1 parent

        为了避免版本冲突的问题,SpringBoot整理出无数个技术版本搭配的列表,称之为parent。
        注意:
parent仅仅帮我们进行版本管理,不负责帮导入坐标。
        在springboot框架中的pom.xml文件中,继承了一个parent坐标,它定义了若干个依赖管理,这样就不存在版本冲突了,减少依赖冲突


        org.springframework.boot
        spring-boot-starter-parent
        2.7.4
         

2.2 starter

        在实际开发时,对于依赖坐标的使用往往都有一些固定的组合方式,比如使用spring-webmvc就一定要使用到spring-web。对于这类情况,SpringBoot就把所有的技术使用的固定搭配格式都开发出来,帮助开发者减少依赖配置。

2.3 引导类

        SpringBoot本身是为了加速Spring程序的开发的,而Spring程序运行的基础是需要创建自己的Spring容器对象(IoC容器)并将所有的对象交给Spring的容器管理,也就是一个一个的Bean。那还了SpringBoot加速开发Spring程序,这个容器还在吗?这个疑问不用说,一定在。

        SpringApplication.run(SpringBootTest1Application.class, args)返回的对象,其实就是Spring的容器,其可以获取配置进去的bean,(比如上面例子中的BookController的bean对象),或者任意一个加了@Component等创建Bean对象实例的注解的类,都可以:

补充:REST风格

SpringBoot快速入门详细步骤_第4张图片

        @PathVaribale注解:声明这个注解后的变量是来自于路径的。
       
在每个crud的方法上的@RequestMapping后,加上method = ...,设置相应的POST或者GET方式,就可以完成REST风格的数据提交。在SpringBoot中,可以用@PostMapping等注解来替代这一整行。
即:

@RequestMapping(methord = RequestMethod.POST)
//等于
@PostMapping

三.属性配置

3.1 yml语法规则

        在resources目录下面有一个空白的文件,叫做application.properties。这是SpringBoot的专属配置文件,如果需要修改端口就直接输入要配置的属性关键字,通过设置键值对的形式修改配置信息。但实际配置中,使用yml格式的配置是使用最为广泛的:
        SpringBoot快速入门详细步骤_第5张图片

 语法的核心规则:数据前面要加空格与冒号隔开。数组内容用“-”表示,例如:

server:
  port: 80

enterprise:
  name: itcast
  age: 16
  tel: 4006184000
  subject:
    - Java
    - 前端
    - 大数据
datasource:
  driver-class-name: com.mysql.cj.jdbc.Driver
  url: jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTC
  username: root
  password: root

3.2 返回yml文件中的数据或整个对象

        若想返回其中的任何一条数据,比较常用的是先自动注入一个Environment的对象,然就就可以任意调用其中你想要调用的数据了。
        若想返回其中的整个对象(比如上文中的datasource整体),那么就需要先创建datasource的包装类,并指定加载数据:
        @ConfigurationProperties(prefix = "datasource") 的作用是,告诉这个包装类要加载的application里的哪个数据对象。

SpringBoot快速入门详细步骤_第6张图片

@RestController //相当与ResponseBody(直接返回字符串、包装对象) + Controller(自动创建javaBean)的结合体
@RequestMapping("/books")
public class BookController {

    @Autowired
    //用于读取全部数据
    private Environment env;

    @Autowired
    private DataSource dataSource;

    @GetMapping("/{id}")
    public String getById(@PathVariable Integer id){
        System.out.println("nb");
        
        //返回任意一条
        System.out.println(env.getProperty("enterprise.subject[0]"));

        //返回整个对象(包装进实体)
        System.out.println(dataSource);
        return "springboots is running!";
    }

 四.SpringBoot整合MyBatis

1.  创建一个新的module,导入对应starter

注意要勾选SQL下的这两个(为了让springboot自动配置坐标)

SpringBoot快速入门详细步骤_第7张图片

		
			org.mybatis.spring.boot
			mybatis-spring-boot-starter
			2.2.2
		

以上自动导入

2.配置相关信息

#1.配置相关信息
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/book
    username: root
    password: xxxxxx

3.编写接口类和对象类,并测试

package com.zqh.dao;

import com.zqh.domain.book;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.awt.print.Book;

/**
 * @Author ZhangQihao
 */
@Mapper
public interface BookDao {
    @Select("select * from tbl_book where id = #{id}")
    public book getById(Integer id);
}
package com.zqh;

import com.zqh.dao.BookDao;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringBootVersion;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class SpringbootMybatisApplicationTests {

	@Autowired
	private BookDao bookDao;

	@Test
	void contextLoads() {
		System.out.println(bookDao.getById(11));
	}

}

 五.SpringBoot整合Druid

1.创建新工程,导入对应starter

         创建过程同上,但要导入Druid的坐标,建议从mvcRepository上搜索Druid,复制进.pom文件中:



    com.alibaba
    druid-spring-boot-starter
    1.2.13

2. 配置相关信息

#1.配置相关信息
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/book
    username: root
    password: 123456
    type: com.alibaba.druid.pool.DruidDataSource

然后测试。

你可能感兴趣的:(spring,boot,学习,java)