springboot

排除原有的依赖,新增依赖

springboot替换tomcat为jetty

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jetty</artifactId>
</dependency>

修改服务器端口

在application.properties里面配置:

server.port=8088

也可以添加配置文件,但是配置文件的格式都是application.xx

对于properties、yaml、yml配置文件,当三个文件都存在的时候,优先级:properties>yml>yaml

日志信息配置

logging:
  level:
    root: warn

yaml

一种数据序列化格式,容易阅读,容易与脚本语言交互,以数据为核心,重数据轻格式。扩展名:yml(主流)、yaml

语法

大小写敏感、每行结尾用冒号结束、使用缩进表示层级关系,同层级左侧对齐,只允许使用空格、属性值前面添加空格,属性名与属性之间使用冒号+空格作为分隔、#表示注释

logging:
  level:
    root: warn
    com: fatal
server:
  compression:
    enabled: on

读取yml数据

yml配置文件数据:

classroom: 2班
student:
  name: 张三
  age: 16
  hobbies:
    - basketball
    - football
    - volleyball

控制层取值:

@Value("${classroom}")
private String cls;
@Value("${student.hobbies[0]}")
private String hobby;

如果想要获取全部的属性值:

@Autowired
private Environment environment;

通过getProperty方法获取配置文件中的值:

environment.getProperty("classroom")

自定义实体类接收指定数据

@Component //交给spring容器管理
@ConfigurationProperties(prefix = "student") //读取配置文件的指定数据
public class Student {
    private String name;
    private Integer age;
    private String[] hobbies;
    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", hobbies=" + Arrays.toString(hobbies) +
                '}';
    }
    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;
    }
    public String[] getHobbies() {
        return hobbies;
    }
    public void setHobbies(String[] hobbies) {
        this.hobbies = hobbies;
    }
}

此时springboot项目上面会有一个警告,我们添加如下依赖,就不会报错了

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>

多环境开发

在yml中配置profile:

#开发环境
spring:
  config:
    activate:
      on-profile: dev
server:
  port: 8081
  
---
#测试环境
spring:
  config:
    activate:
      on-profile: test
server:
  port: 8088

在properties中配置profile:

主启动配置文件application.properties

#激活生产环境
spring.profiles.active=pro

生产环境配置文件application-pro.properties

server.port=8081

开发环境配置文件application-dev.properties

server.port=8088

激活环境

将springboot项目打包,然后在启动springboot项目的时候添加参数

java -jar springboot项目的jar包.jar --spring.profiles.actives=dev

但是maven也可以设置环境,springboot在创建的时候是基于maven,因此当maven想影响spring boot的配置文件

maven的:

<profiles>
    <profile>
        <id>dev</id>
        <properties>
            <profile.active>dev</profile.active>
        </properties>
    </profile>
    <profile>
        <id>test</id>
        <properties>
            <profile.active>test</profile.active>
        </properties>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
    </profile>
</profiles>

properties文件:

spring:
  profiles:
    active: ${profile.active}
---
spring:
  config:
    activate:
      on-profile: dev
server:
  port: 8081
---
#测试环境
spring:
  config:
    activate:
      on-profile: test
server:
  port: 8088

需要添加配置:

<!--对资源文件开启默认占位符的解析-->
<plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <configuration>
        <encoding>utf-8</encoding>
        <useDefaultDelimiters>true</useDefaultDelimiters>
    </configuration>
</plugin>

删除target,重新打包,会发现端口号改变,选择的环境是maven启用的环境

配置文件的优先级

config目录的配置文件优先级高于外面的配置文件,在jar包所在的目录下面添加配置文件application.yml的优先级高于在idea的application.yml和config下面的application.yml,开发过程一般在这配置,等到发布的时候去掉这个。

整合

整合junit

springboot的test目录下面有个test类,将需要测试的类配置进去,启动就可以测试

@SpringBootTest
class SpringbootProjApplicationTests {
    @Autowired
    private StudentService service;
    @Test
    void contextLoads() {
        service.show();
    }
}

实现SSM整合

添加依赖:

<!--todo 导入druid依赖-->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.2.15</version>
</dependency>

配置数据源:

#todo 配置数据源
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/4031
    username: root
    password: 123456
    type: com.alibaba.druid.pool.DruidDataSource

mapper层添加注解:

package com.java.dao;
import com.java.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper//todo 让springboot认识他为mapper
public interface UserDao {
    @Select("select * from user")
    List<User> selectAll();
}

按照需求编写功能

posted @ 2023-03-10 11:05  Liku007  阅读(13)  评论(0编辑  收藏  举报