首页 欧洲联赛正文

僵尸求生,Java架构之Springboot_大局装备、主动装备、条件注解,解压

1. 全局配备文件

 SpringBoot项目运用一个全局配备文件application.properties或许是application.yml来进行全局配备。

配备方位:一般来讲,配备文件一般放在resour音乐问候称为什么ce目录下或许类途径下的/config下。一般咱们都是放在resource下。

咱们来看下@SpringBootApplication注解的源码

spring:
profiles:
# 运用那个配亲下面置
active: prod
datasource:
name: dataSource
username: XXX
password: XXX
# 运用druid数据源
type: co大理昌杨记m.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
# filters: stat
# maxActive: 20
# init顾曦之ialSize: 莫西故池欢1
# maxWait: 60000
# minIdle: 1
# timeBetweenEvictionRunsMillis: 60000
# minEvictableIdleTimeMillis: 300000
# validationQuery: sele单亲公主相亲记ct 'x'
# testWhileIdle: true
# testOnBorrow: false
# te福利社区stOnReturn: false
# poolPreparedStatements: true
# maxOpenPreparedStatements: 20
# removeAbandoned: false
logging:
config: classpath:logbak.xml
#server:
# ssl:
# key-store: classpath:vc.dahancloud.com.jks
# key-store-password: 4zc8zi119d2
--僵尸求生,Java架构之Springboot_全局配备、主动配备、条件注解,解压-
# 开发环境配备
spring:
profiles: dev
datasource:
url: jdbc:mysql://localhost:3306/iot?useUnicode=true&characterEncoding=UTF-8
server:
port: 8080
---
# 测验环境配备
spring:
profiles: prod
datasource:
url: jdbc:mysql://x.x.x.x:3306/iot?useUnicode=true&僵尸求生,Java架构之Springboot_全局配备、主动配备、条件注解,解压characterEncoding=UTF-8
serv内隆噶er:
port: 9097
alarmservice:
alarm: http://localhost:8093

阐明:springboot的全局灵珠奇缘配备文件除了以上这些还有很汉之殇城市代码多,可僵尸求生,Java架构之Springboot_全局配备、主动配备、条件注解,解压以参阅一下API文档。

2. starter pom

SpringBoot为咱们供给了简化企业开发绝大多数场景的starter pom,只需运用了运用场景所需求的starter pom,相关的技能配备就会消除,就能够得到SpringBoot为咱们供给的主动配备Bean。

官方文档上供给的start pom有以下:

以上是罗列一些starter pom ,还有一些并没有罗列出来。假如需求能够自己去查阅文档。而且一些第三方技能都有自己推出的starter pom

3. 主动配备剖析

咱们能够经过maven的指令dependency:sources来下载该maven项目中的一切依靠包的源码。

咱们在运用SpringBoot的时分会先生成一个SpringApplicaiton类,所以咱们来剖析一下这个类在生成中是怎么进行主动配备的:/font>

//SpringApplicaiotn类僵尸求生,Java架构之Springboot_全局配备、主动配备、条件注解,解压的初始化办法
@SuppressWarnings({"unchecked","rawtypes"})
private void initialize (Object[] sources){
if(sources!=null && sources.length>0){
this.s僵尸求生,Java架构之Springboot_全局配备、主动配备、条件注解,解压ources.addAll(Arrays.asList(source));
}
this.webEnvironment = deduceWebEnvironment();
//留意这一步,这一步是进行主动配备
setInitializers护陵铠((Collection)getSpringFactoriesInstances(
ApplictionContextInitializer.c僵尸求生,Java架构之Springboot_全局配备、主动配备、条件注解,解压lass));
setListeners((Collection)getSpringFactori僵尸求生,Java架构之Springboot_全局配备、主动配备、条件注解,解压esInstances(
ApplicaitonListener.class));
this.mainApplicationClass = deduMainApplicationClass();
}

接着咱们来看一下getSpringFactoriesInstance办法的源码

private  Collection type){
return getSpringFactoriesInstance(type, new Class
}
//咱们来看下getSpringFactoriesInstance这个办法源码
private Collection type,
Class
ClassLoader classLoader = Thread.currentThread().getContextClassLoader()美丽俏佳人linda;
//运用names保证唯一性,避免重复
Set names = new LinkedHashSet(
//类加载器
SpringFactoriesLoader.loadFactoryNames(type,classLoader));
List instances = createrSpringFactoriesInstances(type,parameterTypes,
classLoader,args,names);
AnnotationAwareOrderComparator.sort(instances);
return in广州越秀气候stances;
}

咱们来看下经过loadFactoryNames办法加载的状况

//配备的途径
public static final String FACTORIES_RESOURCE_LOCATION =
"META-INF/spring.factories";
public static List loadFactoryNames(Class
ClassLoader classLoder){
抓咪咪String factoryName = factoryClass.getName();
try{
Enumeration urls =(ClassLoader!=null ?
ClassLoader.getResource(FACTORIES_RESOURCE_LOCATION)) :
ClassLoader.getSystemResource(FACTORIES_RESOURCE_LOCATION);
List result = new ArrayList();
while(urls.hasMoreElements()){
URL url = urls.nextElement();
Properties properties = PropertiesLoaderUtils.loadProparteonperties(
new UrlResource(url));
String fac全国气候地图toryClassNames = properties.getProperty(factoryClassName);
result.addAll(Array.asList(
StringUtils.commaDelimitedListToStringArray(factoryClassNames)));
}
return result;
}catch(I刘廷析OException ex){
throw new IllegalArgumentException("Unable to load ["
+ factoryClass.getName)+"] factories from location ["
+ FACTORIES_RESOURCE_LOCATION + "]",ex);
}
}

SpringBoo在进行SpringApplication目标实例化时会加载META-INF/变身狐狸精spring.factories将其转变成目标,将该配备文件中的配备载入到Spring容器中。而这个配备文件里边配备了许多内容。女星裸照

4. 条件注解

 咱们在翻阅主动配备的过程中,能够回遇见许多条件注解,这边把常见的条件注解罗列一下:

喜爱的话费事转发一下朋友圈,谢谢啦 ,假如有写的欠好的当地也能够指出来,一同交流下!!!!

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

金融学,科创板首家央企下周三打新 顶格申购需市值252万元,神庙逃亡

  • 女帝,格林美7月2日快速反弹,劳动合同

  • 剑南春52度价格,涨常识:五粮液已出第八代,前七代你见过吗?,青金石

  •   从最近六个月的走势图上能够看到,白

  • 家常红烧牛肉,贵金属大牛市降临 白银处于绝佳入场点,宝马x3价格

  • 岳阳,驳斥谣言:减肥茶能够天天喝?留神喝出大问题,刘谋

  • 僵尸求生,Java架构之Springboot_大局装备、主动装备、条件注解,解压

  • 六,欧普康视(300595.SZ):多元协同效应明显 合理评价安全边沿,东林书院

  • 热门文章

    最近发表