• spring boot 学习一


    spring boot

      SpringBoot提供了一种快速使用Spring的方式,基于约定优于配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的效率。

      SpringBoot具有自动配置、起步依赖、辅助功能的作用

      注意:Spring Boot 并不是对 Spring 功能上的增强,而是提供了一种快速使用 Spring 的方式。

    1、如何快速搭建一个SpringBoot工程

    1. 创建Maven项目
    2. 导入SpringBoot起步依赖
      • 这里必须要添加这个parent这个父类,由于springboot要与springcloud一起使用,两者的版本要保持一致
      •  1 <!--springboot工程需要继承的父工程-->
         2     <parent>
         3         <groupId>org.springframework.boot</groupId>
         4         <artifactId>spring-boot-starter-parent</artifactId>
         5         <version>2.1.8.RELEASE</version>
         6     </parent>
         7 
         8     <dependencies>
         9         <!--web开发的起步依赖-->
        10         <dependency>
        11             <groupId>org.springframework.boot</groupId>
        12             <artifactId>spring-boot-starter-web</artifactId>
        13         </dependency>
        14     </dependencies>
    3. 编写引导类
      • 引导类需要加@SpringBootApplication这样的注解
      •  1 /**
         2  * 引导类。 SpringBoot项目的入口
         3  */
         4 @SpringBootApplication
         5 public class HelloApplication {
         6 
         7     public static void main(String[] args) {
         8         SpringApplication.run(HelloApplication.class,args);
         9     }
        10 }
    4. 编写配置文件(application.yml)
      •  1 server: #指定tomcat端口号以及ip地址 2 port: 8080 3 address: 127.0.0.1    
    5. 定义Controller

    注意:此时运行项目,就可以了,因为SpringBoot内部内置了tomcat服务器

    2、SpringBoot配置-配置文件分类

      SpringBoot是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认配置的话,就可以使用application.properties或者application.yml(application.yaml)进行配置。

    • 默认配置文件名称:application
    • 统计目录下的优先级为 properties>yml>yaml

    基本语法:

    • 大小写敏感
    • 数据前边必须有空格,作为分隔符
    • 缩进时不允许使用tab键(idea中可以使用),只允许使用空格
    • 相同层级的元素左侧对齐
    • #表示注释,从字符一直到行尾,都会被解析器忽略

    数据格式:

    • 对象(map)键值对的集合
      • person:
      •   name:张三
    • 数组 一组按次序排列的值
      • address
      •    - 北金
      •  - 南宋
    • 纯量 单个不可再分的值
      • msg:"hello world"  # 双引识别转义字符
      • msg:'hello world'  # 单引忽略转义字符

    获取配置文件中的数据3种方式:

    1. @Value
      • #获取对象属性
        @Value("${person.name}")

        private String name2;
      • #获取数组
        @Value("${address[0]}")
        private String address1;

    2. Evironment
      • 注入Evironment对象,通过getProperty获取值
      • @Autowired

        private Environment env;                    System.out.println(env.getProperty("person.name"));

    3. 定义实体类,类的上方要加@ConfigurationProperties注解,且需要有前缀 prfix
      • @Component
        @ConfigurationProperties(prefix = "person")
        public class Person {

        private String name;
        private int age;
        private String[] address;}

         

    3、SpringBoot配置-profile

      profile是用来完成不同环境下,配置动态切换功能的

    1. 多profile文件方式:提供多个配置文件,每个代表一种环境,在application文件中指定激活的配置,spring.profiles.active=dev
      • application-dev.properties/yml 开发环境
      • application-test.properties/yml 测试环境
      • application-pro.properties/yml 生产环境
    2. yml多文档方式
      • 将每种开发环境之间用--- 3个-分割,每个配置都需要指定
        spring:
        profiles: pro 这样的指定
        最后指定需要激活的配置  spring.profiles.active=dev
    3. profile激活方式
      1. 配置文件: 再配置文件中配置:spring.profiles.active=dev
      2. 虚拟机参数:在VM options 指定:-Dspring.profiles.active=dev
      3. 命令行参数:java –jar xxx.jar --spring.profiles.active=dev

    4、SpringBoot整合Junit

    • 搭建SpringBoot工程
    • 引入starter-test起步依赖
      •  1  <dependencies>
         2         <dependency>
         3             <groupId>org.springframework.boot</groupId>
         4             <artifactId>spring-boot-starter</artifactId>
         5         </dependency>
         6 
         7         <dependency>
         8             <groupId>org.springframework.boot</groupId>
         9             <artifactId>spring-boot-starter-test</artifactId>
        10             <scope>test</scope>
        11         </dependency>
        12     </dependencies>
    • 编写测试类   测试类上方的注解必须是这样的,第二个注解为启动引导类的字节码文件
      •  1 /**
         2  * 测试类*/
         3 @RunWith(SpringRunner.class) 
         4 @SpringBootTest(classes = SpringbootJunitApplication.class ) //这个地方必须是启动类的字节码文件
         5 public class UserServiceTest {
         6     @Test
         7     public void test(){
         8         System.out.println(111);
         9     }
        10 }

    5、SpringBoot整合Mybatis

    • 搭建SpringBoot工程
    • 引入mybatis起步依赖,添加mysql驱动
      •  1 <dependencies>
         2         <dependency>
         3             <groupId>org.mybatis.spring.boot</groupId>
         4             <artifactId>mybatis-spring-boot-starter</artifactId>
         5             <version>2.1.3</version>
         6         </dependency>
         7 
         8         <dependency>
         9             <groupId>mysql</groupId>
        10             <artifactId>mysql-connector-java</artifactId>
        11             <version>5.1.6</version>
        12             <scope>runtime</scope>
        13         </dependency>
        14 
        15         <dependency>
        16             <groupId>org.springframework.boot</groupId>
        17             <artifactId>spring-boot-starter-test</artifactId>
        18             <scope>test</scope>
        19         </dependency>
        20     </dependencies>

        注意:这里需指定mybatis连接驱动的版本,因为springboot指定的mybatis的版本是8.0以上

    • 编写DataSource和MyBatis相关的配置
      •  1 # datasource
         2 spring:
         3   profiles: dev
         4   datasource:
         5     url: jdbc:mysql://192.168.236.129/db5
         6     username: root
         7     password: ******
         8     driver-class-name: com.mysql.jdbc.Driver
         9 
        10   # mybatis/
        11 mybatis:
        12     mapper-locations: classpath:mapper/*Mapper.xml # mapper映射文件路径
        13     type-aliases-package: com.itheima.domain
        14   # config-location:  # 指定mybatis的核心配置文件

         

    • 定义实体类
    • xml方式 编写dao 和 mapper文件  /纯注解方式.
      • //dao
        @Mapper
        @Repository
        public interface UserXmlMapper {
        
            public List<User> findAll();
        }
        //mapper.xml
        <?xml version="1.0" encoding="UTF-8" ?>
        <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
        <mapper namespace="com.itheima.springbootmybatis.mapper.UserXmlMapper">
            <select id="findAll" resultType="user">
                select * from t_user
            </select>
        </mapper>
        
        //纯注解
        @Mapper
        @Repository
        public interface UserMapper {
        
            @Select("select * from t_user")
            public List<User> findAll();
        }
          
  • 相关阅读:
    Vue生命周期
    脚本生命周期
    音频
    光照系统
    InstantOC(对象渲染---游戏优化)
    kafka单机环境配置以及基本操作
    mysql 锁机制
    java.math.BigDecimal类multiply的使用
    去掉返回的json中特殊字符
    TheadLocal与synchronized
  • 原文地址:https://www.cnblogs.com/luckysupermarket/p/13782299.html
Copyright © 2020-2023  润新知