springboot 第二天

1.idea spring多模块

1.parent: 管理版本

在父模块的pom添加以下代码

 <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>2.0.5.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

2.子模块

1.指定父模块
其实如果是直接在父模块下面创建的模块的话,指定父模块是自动生成的

  <parent>
        <artifactId>springboot-parent</artifactId>
        <groupId>com.sx</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>

2.导入自己需要的场景启动器

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

    </dependencies>

3.多模块的打包需要添加以下的代码

 <build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <!-- 如果依赖父亲是spring-boot-starter-parent(不是多模块),就不需要添加,在里面已经配置了-->
            <configuration>
                <mainClass>com.sx.App</mainClass>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
    </build>

2.入门探究

1.pom文件:非多模块项目

 <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.5.RELEASE</version>
    </parent>

父亲模块spring-boot-dependencies,版本仲裁中心

二 导入场景启动器

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

三 打包

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

2.@SpringApplication

一 是一个配置类
二 导入当前类所在包及子子孙包加了注解的类
三 加入一大堆配置类

四 一大堆的配置类被加载后会进行自动配置,以至于我们使用时不用做配置

3.springboot配置

1.配置文件

SpringBoot使用一个全局的配置文件,配置文件名是固定的
1.application.properties -传统方式,不推荐
2.application.yml-推荐使用

使用配置文件要加入以下代码

<!--导入配置文件处理器,配置文件进行绑定就会有提示-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
    </dependencies>

2.yml

1.yml的书写规范

1.名字必须是application.yml
2.换行空格表示层级
3.冒号后面必须要隔一个空格 如:

person:
  lastName: admin
  age: 20
  boss: false
  maps: {k1: v1,k2: 12}
  lists:
    - one
    - tow
  dog:
    name: 秋田
    age: 22

2.获取yml的内容

1.先写一个文件准备好yml里面的属性比如:

写一个person.java

 private String lastName;
    private Integer age;
    private Boolean boss;
    private Map<String,Object> maps;
    private List<Object> lists;
    private Dog dog;

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public Integer getAge() {
        return age;
    }

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

    public Boolean getBoss() {
        return boss;
    }

    public void setBoss(Boolean boss) {
        this.boss = boss;
    }


    public Map<String, Object> getMaps() {
        return maps;
    }

    public void setMaps(Map<String, Object> maps) {
        this.maps = maps;
    }

    public List<Object> getLists() {
        return lists;
    }

    public void setLists(List<Object> lists) {
        this.lists = lists;
    }

    public Dog getDog() {
        return dog;
    }

    public void setDog(Dog dog) {
        this.dog = dog;
    }

    @Override
    public String toString() {
        return "Person{" +
                "lastName='" + lastName + '\'' +
                ", age=" + age +
                ", boss=" + boss +
                ", maps=" + maps +
                ", lists=" + lists +
                ", dog=" + dog +
                '}';
    }

2.获取yml值的两种方式

1.方式一 获取值 @value("${xxx.yyy}")
这个只能单个的获取,如果要每个属性都获取的话就每个属性上面都要加

@Value("${person.lastName}")

2.方式二

@ConfigurationProperties(prefix = "bean名")
@PropertySource(value = {"classpath:application.yml"})

3.profile多环境支持

1.为什么需要多场景支持

因为在开发中可能会有开发环境的实现,还有测试环境和上线后的环境的不同

2.多场景支持的方法

在配置文件yml中进行配置

spring:
  profiles:
    active: test
---
server:
  port: 8080
spring:
  profiles: dev
---
server:
  port: 8081
spring:
  profiles: test
---
server:
  port: 8082
spring:
  profiles: prod

active表示默认激活的那一套

4.springboot测试

1.在pom中导入

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

2.创建一个SpringBoot启动类:

@SpringBootApplication
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class,args);
    }
}

2.做测试的时候可以创一个service,方便测试,并将它交给spring管理:

@Service
public class MyService {
    public void test(){
        System.out.println("test");
    }
}

3…最后写一个测试类,自动注入service,来调用service的方法
这里重要的有两个注解才能实现springboot的测试

@RunWith(SpringRunner.class)
@SpringBootTest(classes = Spring启动类的名字.class)
@RunWith(SpringRunner.class)
@SpringBootTest(classes = App.class)
public class SpringBootTestTest {
    //注入类就可以了
    @Autowired
    private MyService myService;
    @Test
    public void test(){
        myService.test();
    }

}

5.springboot日志

把其他框架的日志替换为我们的实现
移出其他框架日志jar
替换为自己的实现
统一一个日志框架

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值