springboot修改属性配置的三种⽅法
⼀、修改默认配置
例1、spring boot 开发web应⽤的时候,默认tomcat的启动端⼝为8080,如果需要修改默认的端⼝,则需要在application.properties 添加以下记录:
server.port=8888
⼆、⾃定义属性配置
在application.properties中除了可以修改默认配置,我们还可以在这配置⾃定义的属性,并在实体bean中加载出来。
1、在application.properties中添加⾃定义属性配置
com.sam.name=sam
com.sam.age=11
com.sam.desc=magical sam
2、编写Bean类,加载属性
Sam类需要添加@Component注解,让spring在启动的时候扫描到该类,并添加到spring容器中。
第⼀种:使⽤spring⽀持的@Value()加载
package com.f;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
/**
* @author sam
* @since 2017/7/15
*/
@Component
public class Sam {
//获取application.properties的属性
@Value("${com.sam.name}")
private String name;
@Value("${com.sam.age}")
private int age;
@Value("${com.sam.desc}")
private String desc;
//getter & setter
}
第⼆种:使⽤@ConfigurationProperties(prefix="") 设置前缀,属性上不需要添加注解。
package com.f;
import org.springframework.stereotype.Component;
/**
* @author sam
* @since 2017/7/15
*/
@Component
@ConfigurationProperties(prefix = "com.sam")
public class Sam {
private String name;
private int age;
spring framework组件
private String desc;
//getter & setter
}
三、⾃定义配置类
在Spring Boot框架中,通常使⽤@Configuration注解定义⼀个配置类,Spring Boot会⾃动扫描和识别配置类,从⽽替换传统Spring框架中的XML配置⽂件。
当定义⼀个配置类后,还需要在类中的⽅法上使⽤@Bean注解进⾏组件配置,将⽅法的返回对象注⼊到Spring容器中,并且组件名称默认使⽤的是⽅法名,
这⾥使⽤DataSource举例
fig;
import javax.sql.DataSource;
@Slf4j
@Configuration
@EnableConfigurationProperties(JdbcPro.class)
public class DataSouce1Config {
@Value("${my.name}")
private String name ;
@Value("${spring.datasource.url}")
private String dbUrl;
@Value("${spring.datasource.username}")
private String username;
@Value("${spring.datasource.password}")
private String password;
@Value("${spring.datasource.driver-class-name}")
private String driverClassName;
@Bean
@Primary
public DataSource dataSource(){
DruidDataSource druidDataSource = new DruidDataSource(); druidDataSource.setUrl(this.dbUrl);
druidDataSource.setUsername(username); druidDataSource.setPassword(password); druidDataSource.setDriverClassName(driverClassName); log.info("cccccccccccccccc");
log.info(this.name);
return druidDataSource;
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。