Spring Boot--外部配置

1、命令行参数配置:

Spring Boot 可以是基于 jar 包运行的,打成 jar 包的程序可以直接通过以下命令运行并修改端口号:

Java -jar xx.jar --server.port=9090

2、常规属性配置:

注入 properties 文件里的值,通过 @PropertySource 指明 properties 文件的位置,然后通过 
@Value 注入值。

示例:

在 application.properties 中增加属性:book.author=zsq

在启动类中直接使用 @Value注解配置属性。

3、类型安全的配置(基于 properties)

使用 @Value 注入每个配置在实际项目中会很麻烦。Spring Boot 提供了基于类型安全的配置方式,通过@ConfigurationProperties 将 properties 属性和一个Bean及其属性关联,从而实现类型安全的配置。

在src/main/resources中创建一个demo.properties 配置文件。

添加配置信息,test=1111

创建类型安全的Bean。在类上使用 @Component 和 @ConfigurationProperties(prefix="")

4、日志配置

Spring Boot 支持 Java Util Logging、Log4J、Log4J2 和 LogBack 作为日志框架,默认情况下,使用 LogBack作为日志框架。

配置日志级别:

logging.file=D:/var/logs/log.log

配置日志文件,格式为 logging.level.包名=级别

logging.level.org.springframework.web=DEBUG

5、Profile 配置

Profile是 Spring 针对不同环境对不同的配置提供支持的。全局 Profile 配置使用 application-{profile}.properties

通过在 application.properties 中设置 spring.profiles.active=prod 来指定活动的Profile。

 

### 使用 `spring-boot-starter-jndi` 启动器 在 Spring Boot 项目中,`spring-boot-starter-jndi` 是用于简化 JNDI(Java Naming and Directory Interface)集成的一个启动器。它允许开发者通过简单的配置来访问外部资源,比如数据库连接池或其他企业级服务。 #### 添加依赖项 为了使用 `spring-boot-starter-jndi`,需要将其作为依赖项添加到项目的构建文件中。对于 Maven 和 Gradle 的配置如下: ##### Maven 配置 ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jndi</artifactId> </dependency> ``` ##### Gradle 配置 ```gradle implementation 'org.springframework.boot:spring-boot-starter-jndi' ``` 以上代码片段展示了如何将 `spring-boot-starter-jndi` 添加到项目中的方式[^1]。 #### 配置 JNDI 数据源 Spring Boot 提供了一种自动化的机制来绑定 JNDI 资源。通常情况下,JNDI 数据源可以通过应用程序属性文件 (`application.properties`) 或环境变量进行定义。以下是常见的配置选项: ```properties spring.datasource.jndi-name=java:comp/env/jdbc/MyDataSource ``` 此配置指定了数据源的 JNDI 查找名称。当 Spring Boot 应用程序启动时,会尝试根据指定的 JNDI 名称加载相应的数据源实例[^3]。 如果使用的容器支持特定的 JNDI 实现,则可能还需要额外的配置步骤。例如,在 Tomcat 中可以这样声明全局上下文的数据源: ```xml <Resource name="jdbc/MyDataSource" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="dbuser" password="s3cret" driverClassName="com.mysql.cj.jdbc.Driver" url="jdbc:mysql://localhost:3306/mydb"/> ``` 这段 XML 片段显示了如何在 Tomcat 容器中配置一个名为 `jdbc/MyDataSource` 的 JNDI 数据源[^2]。 #### 自定义 Bean 注入 除了自动化配置外,还可以手动注入 JNDI 对象。这可以通过编写自定义的配置类实现: ```java import javax.naming.InitialContext; import javax.sql.DataSource; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class DataSourceConfig { @Bean(destroyMethod="") public DataSource dataSource() throws Exception { InitialContext ctx = new InitialContext(); return (DataSource)ctx.lookup("java:comp/env/jdbc/MyDataSource"); } } ``` 在此示例中,我们创建了一个名为 `dataSource()` 的方法,并利用 `InitialContext` 来执行具体的 JNDI 查询操作[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值