外部化Spring Boot的属性

时间:2016-09-30 15:51:55

标签: eclipse spring-boot

我知道这有很多线索,但还没有解决我的问题。我有一个在Eclipse中运行的Spring Boot应用程序,我将这些参数外部化,以便部署到外部Tomcat并使属性远离战争。我将我的application.properties从src / main / resources移到了APP_ROOT / config。在catalina.sh中,我添加了这个:

 JAVA_OPTS="-Dspring.profiles.active=local  -Dspring.config.location=$CATALINA_BASE/conf/"

外部构建工作正常;但是,现在它不再是在Eclipse中启动了。我通过将spring.config.location和spring.profiles.active添加到启动配置中的VM参数来复制我在Tomcat中所做的操作。

在引导期间,它会注册一个Oracle驱动程序(与我在属性文件中指定的版本不同),然后停止。如果我添加:

@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})

到我的配置类,以便驱动程序不会自动注册,然后我得到:

No qualifying bean of type [org.springframework.jdbc.core.JdbcTemplate] 

奇怪的是,我尝试将我的application.properties放回src / main / resources并删除VM参数,我得到了相同的行为。这是我在启动时看到的,不排除DataSourceAutoConfiguration。有什么想法吗?

2016-09-30 11:44:59.661  INFO 5150 --- [           main] org.usp.mct.MctApplication               : Starting MctApplication on cici-mac.local with PID 5150 (/Users/cici/Documents/workspace-sts-3.7.3.RELEASE/mct.usp.org/target/classes started by cici in /Users/cici/Documents/workspace-sts-3.7.3.RELEASE/mct.usp.org)
2016-09-30 11:44:59.663  INFO 5150 --- [           main] org.usp.mct.MctApplication               : The following profiles are active: local
2016-09-30 11:44:59.713  INFO 5150 --- [           main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@550ee7e5: startup date [Fri Sep 30 11:44:59 EDT 2016]; root of context hierarchy
2016-09-30 11:45:01.005  INFO 5150 --- [           main] j.LocalContainerEntityManagerFactoryBean : Building JPA container EntityManagerFactory for persistence unit 'default'
2016-09-30 11:45:01.019  INFO 5150 --- [           main] o.hibernate.jpa.internal.util.LogHelper  : HHH000204: Processing PersistenceUnitInfo [
name: default
...]
2016-09-30 11:45:01.088  INFO 5150 --- [           main] org.hibernate.Version                    : HHH000412: Hibernate Core {5.0.9.Final}
2016-09-30 11:45:01.089  INFO 5150 --- [           main] org.hibernate.cfg.Environment            : HHH000206: hibernate.properties not found
2016-09-30 11:45:01.091  INFO 5150 --- [           main] org.hibernate.cfg.Environment            : HHH000021: Bytecode provider name : javassist
2016-09-30 11:45:01.127  INFO 5150 --- [           main] o.hibernate.annotations.common.Version   : HCANN000001: Hibernate Commons Annotations {5.0.1.Final}
2016-09-30 11:45:01.598  INFO 5150 --- [           main] org.hibernate.dialect.Dialect            : HHH000400: Using dialect: org.hibernate.dialect.Oracle12cDialect
2016-09-30 11:45:01.749  INFO 5150 --- [           main] org.hibernate.type.BasicTypeRegistry     : HHH000270: Type registration [byte[]] overrides previous : org.hibernate.type.BinaryType@70972170
2016-09-30 11:45:01.749  INFO 5150 --- [           main] org.hibernate.type.BasicTypeRegistry     : HHH000270: Type registration [[B] overrides previous : org.hibernate.type.BinaryType@70972170
2016-09-30 11:45:01.750  INFO 5150 --- [           main] org.hibernate.type.BasicTypeRegistry     : HHH000270: Type registration [Byte[]] overrides previous : org.hibernate.type.WrapperBinaryType@69fe0ed4
2016-09-30 11:45:01.750  INFO 5150 --- [           main] org.hibernate.type.BasicTypeRegistry     : HHH000270: Type registration [[Ljava.lang.Byte;] overrides previous : org.hibernate.type.WrapperBinaryType@69fe0ed4
2016-09-30 11:45:02.181  INFO 5150 --- [           main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2016-09-30 11:45:02.984  INFO 5150 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup
2016-09-30 11:45:02.992  INFO 5150 --- [           main] o.s.c.support.DefaultLifecycleProcessor  : Starting beans in phase 0
2016-09-30 11:45:03.059  INFO 5150 --- [           main] org.usp.mct.MctApplication               : Started MctApplication in 3.796 seconds (JVM running for 4.181)
2016-09-30 11:45:03.060  INFO 5150 --- [       Thread-3] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@550ee7e5: startup date [Fri Sep 30 11:44:59 EDT 2016]; root of context hierarchy
2016-09-30 11:45:03.061  INFO 5150 --- [       Thread-3] o.s.c.support.DefaultLifecycleProcessor  : Stopping beans in phase 0
2016-09-30 11:45:03.063  INFO 5150 --- [       Thread-3] o.s.j.e.a.AnnotationMBeanExporter        : Unregistering JMX-exposed beans on shutdown

1 个答案:

答案 0 :(得分:0)

在这种情况下,我吹走了我的回购然后再重新克隆。仍然需要使用外部参数而不是src / main / resources / application.properties,但至少我回到原点。