Spring Boot (初级知识点)(三)

简介: Spring Boot (初级知识点)(三)

④. profile


4. profile


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


  • ②. profile配置方式


profile配置方式:

(1).多profile文件方式:提供多个配置文件,每个代表一种环境

application-dev.properties/yml 开发环境

application-test.properties/yml 测试环境

application-pro.properties/yml 生产环境

(2).yml多文档方式

在yml中使用 --- 分隔不同配置


③. profile的激活方式


激活方式:

(1).配置文件:再配置文件中配置:spring.profiles.active=dev

(2).虚拟机参数:在VM options 指定: -Dspring.profiles.active=dev

(3).命令行参数:java -jar xxx.jar --spring.profiles.active=dev


④. 代码演示


微信图片_20220105220331.png

---
server:
  port: 8881
spring:
  profiles: dev
---
server:
  port: 8882
spring:
  profiles: test
---
server:
  port: 8883
spring:
  profiles: pro
---
spring:
  profiles:
    active: pro


⑤. 内部配置加载顺序


5.内部配置加载顺序


①. file:./config/:当前项目下的/config目录下


②. file:./:当前项目的根目录


③. classpath:/config/:classpath的/config目录


④. classpath:/:classpath的根目录


注意:加载顺序为上文的排列顺序,高优先级配置的属性会生效


⑤. 详解ConfigurationProperties


5> .@ConfigurationProperties


①. @ConfigurationProperties:从配置文件中读取配置项 [ prefix 表示项的前缀:配置项类中的类变量名要与前缀之后的配置项名称保持松散绑定(相同) ]


②. EnableConfigurationProperties(类.class):加载有@ConfigurationProperties注解的类


③. [ 注意 ]可以使用Spring Boot提供的注解@ConfigurationProperties,该注解可以将Spring Boot的配置文件(默认必须为application.properties或application.yml)中的配置项读取到一个对象中


微信图片_20220105220505.png


1. 加载有@ConfigurationProperties的注解的类


微信图片_20220105220529.png


①. 创建配置项类JdbcProperties类,在该类名上面添加@ConfigurationProperties;


package com.itheima.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
/*
ConfigurationProperties:从配置文件中读取配置项
prefix 表示项的前缀
配置项类中的类变量名要与前缀之后的配置项名称保持松散绑定(相同)
* */
@ConfigurationProperties(prefix = "jdbc")
public class JdbcProperties {
    private String driverClassName;
    private String url;
    private String username;
    private String password;
    public String getDriverClassName() {
        return driverClassName;
    }
    public void setDriverClassName(String driverClassName) {
        this.driverClassName = driverClassName;
    }
    public String getUrl() {
        return url;
    }
    public void setUrl(String url) {
        this.url = url;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
}


②. 引入标有ConfigurationProperties的类


注意:

这里注入JdbcProperties,有三种方式


微信图片_20220105220616.png


@Configuration
@EnableConfigurationProperties(JdbcProperties.class)
public class JdbcConfig {
    @Bean
    public DataSource dataSource(JdbcProperties jdbcProperties){
        DruidDataSource dataSource=new DruidDataSource();
        dataSource.setDriverClassName(jdbcProperties.getDriverClassName());
        dataSource.setUrl(jdbcProperties.getUrl());
        dataSource.setUsername(jdbcProperties.getUsername());
        dataSource.setPassword(jdbcProperties.getPassword());
        return dataSource;
    }
}


③. 测试类

@RestController
public class HelloController {
    @Autowired
    private DataSource dataSource;
    @GetMapping("/hello")
    public String hell()throws Exception{
        System.out.println(dataSource);
        return "Hello Spring boot";
    }
}


④.启动启动类,在页面可以看到如下信息表示成功!


微信图片_20220105220659.png


2. 在方法上直接写@ConfigurationProperties


微信图片_20220105220720.png微信图片_20220105220727.png


3. 注意事项:


  • ①. 问题:如果出现如下提示,项目也可以运行;


微信图片_20220105220750.png


②. 解决方案:如果要去掉上述的提示,则可以在 pom.xml 文件中添加如下依赖:


    <dependency>
       <groupId> org.springframework.boot </groupId>
       <artifactId>spring-boot-configuration-processor</artifactId>
       <!--不传递依赖-->
       <optional>true</optional>
   </dependency>



相关文章
SpringBoot+Mybatis-Plus+PageHelper分页+多条件查询
SpringBoot+Mybatis-Plus+PageHelper分页+多条件查询
521 0
|
3月前
|
SQL Java 数据库连接
Spring、SpringMVC 与 MyBatis 核心知识点解析
我梳理的这些内容,涵盖了 Spring、SpringMVC 和 MyBatis 的核心知识点。 在 Spring 中,我了解到 IOC 是控制反转,把对象控制权交容器;DI 是依赖注入,有三种实现方式。Bean 有五种作用域,单例 bean 的线程安全问题及自动装配方式也清晰了。事务基于数据库和 AOP,有失效场景和七种传播行为。AOP 是面向切面编程,动态代理有 JDK 和 CGLIB 两种。 SpringMVC 的 11 步执行流程我烂熟于心,还有那些常用注解的用法。 MyBatis 里,#{} 和 ${} 的区别很关键,获取主键、处理字段与属性名不匹配的方法也掌握了。多表查询、动态
132 0
|
9月前
|
XML Java 应用服务中间件
Spring Boot 两种部署到服务器的方式
本文介绍了Spring Boot项目的两种部署方式:jar包和war包。Jar包方式使用内置Tomcat,只需配置JDK 1.8及以上环境,通过`nohup java -jar`命令后台运行,并开放服务器端口即可访问。War包则需将项目打包后放入外部Tomcat的webapps目录,修改启动类继承`SpringBootServletInitializer`并调整pom.xml中的打包类型为war,最后启动Tomcat访问应用。两者各有优劣,jar包更简单便捷,而war包适合传统部署场景。需要注意的是,war包部署时,内置Tomcat的端口配置不会生效。
2305 17
Spring Boot 两种部署到服务器的方式
|
7月前
|
Java 数据库 微服务
微服务——SpringBoot使用归纳——Spring Boot中的项目属性配置——指定项目配置文件
在实际项目中,开发环境和生产环境的配置往往不同。为简化配置切换,可通过创建 `application-dev.yml` 和 `application-pro.yml` 分别管理开发与生产环境配置,如设置不同端口(8001/8002)。在 `application.yml` 中使用 `spring.profiles.active` 指定加载的配置文件,实现环境快速切换。本节还介绍了通过配置类读取参数的方法,适用于微服务场景,提升代码可维护性。课程源码可从 [Gitee](https://gitee.com/eson15/springboot_study) 下载。
302 0
|
监控 Java 应用服务中间件
Spring Boot 源码面试知识点
【5月更文挑战第12天】Spring Boot 是一个强大且广泛使用的框架,旨在简化 Spring 应用程序的开发过程。深入了解 Spring Boot 的源码,有助于开发者更好地使用和定制这个框架。以下是一些关键的知识点:
175 6
|
SQL JSON Java
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和PageHelper进行分页操作,并且集成Swagger2来生成API文档,同时定义了统一的数据返回格式和请求模块。
427 1
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
|
11月前
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
623 2
|
缓存 NoSQL Java
Springboot自定义注解+aop实现redis自动清除缓存功能
通过上述步骤,我们不仅实现了一个高度灵活的缓存管理机制,还保证了代码的整洁与可维护性。自定义注解与AOP的结合,让缓存清除逻辑与业务逻辑分离,便于未来的扩展和修改。这种设计模式非常适合需要频繁更新缓存的应用场景,大大提高了开发效率和系统的响应速度。
411 2
|
前端开发 Java 数据库连接

热门文章

最新文章