@Configuration
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface Configuration {
String value() default "";
}
启动类增加: @EnableAutoConfiguration 或者 @SpringBootApplication
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
/**
*/
@Configuration
@Data
public class ApplicationConfig {
/**
* 应用名
*/
@Value("${application.name}")
private String appName;
/**
* 日报发件人.
*/
@Value("${reportFromMail}")
private String reportFromMail;
}
@ConfigurationProperties
@Target({ ElementType.TYPE, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ConfigurationProperties {
@AliasFor("prefix")
String value() default "";
@AliasFor("value")
String prefix() default "";
boolean ignoreInvalidFields() default false;
boolean ignoreNestedProperties() default false;
boolean ignoreUnknownFields() default true;
}
启动类增加: @EnableConfigurationProperties
import javax.annotation.PostConstruct;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/**
* 属性文件中的key前缀与prefix一致. 属性对象还可以是Object.
*
*/
@ConfigurationProperties(prefix="noob.tddl")
@Component
@Data
public class Config {
private String dbNamePrefix; //数据库名称前缀
private int dbCount; //数据库的个数
private int tableCountForEachDb; //每个库中表的个数
private int tableCount; //表总数
@PostConstruct
public void log() {
System.out.println("DbConfig [dbNamePrefix=" + getDbNamePrefix() + ", dbCount=" + getDbCount()
+ ", tableCountForEachDb=" + getTableCountForEachDb() + ", tableCount=" + getTableCount() + "]");
}
}
启动类:
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.feign.EnableFeignClients;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.ImportResource;
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
@EnableDiscoveryClient
@EnableFeignClients
@EnableConfigurationProperties
@ImportResource("classpath:dependence.xml")
@MapperScan(basePackages = { "com.noob.retry.dao", "com.noob.mics.dao" })
@ComponentScan(value = { "com.noob.mics", "com.noob.common" })
@ImportAutoConfiguration(exclude = { })
public class XraiseMicsApplication {
public static void main(String[] args) {
System.setProperty("PROJECT_ID", "dev");
SpringApplication.run(XraiseMicsApplication.class, args);
}
}