小编mjj*_*409的帖子

Spring @Value以默认值转义冒号(:)

我有以下使用@Value注释的属性.我有一个使用默认分隔符':'定义的默认值

@Value("${prop.url:http://myurl.com}")
Run Code Online (Sandbox Code Playgroud)

有没有办法逃避':' http://myurl.com或我必须在我的配置中定义一个不同的分隔符值.

spring spring-annotations spring-properties

36
推荐指数
1
解决办法
1万
查看次数

Tomcat 8,Spring Boot,@ Configurable LoadTimeWeaving没有-javaagent?

我正在尝试设置@Configurable域对象(不是由spring容器管理).
我已经通过添加-javaagent:path/to/spring-instrument.jar作为JVM参数来完成这项工作但是我不能100%清楚这个-javaagent是否必须到位.我在Tomcat 8上运行它.我可能会误解文档,但似乎我可以使用另一种机制来实现这一点,特别是这一行:

不要定义TomcatInstrumentableClassLoader了对Tomcat 8.0高.相反,让Spring InstrumentableClassLoader通过TomcatLoadTimeWeaver策略自动使用Tomcat的新本机设施.

代码示例如下:

@SpringBootApplication
@EnableLoadTimeWeaving
public class TestApplication {

    public static void main(String[] args) {
        SpringApplication.run(TestApplication.class, args);
    }   
    @Bean
    public MyService myService(){
        return new MyService();
    }
}
Run Code Online (Sandbox Code Playgroud)
@Configurable
public class MyDomainObject {

    @Autowired
    private MyService myService;

    public MyService getMyService(){
        return myService;
    }
}
Run Code Online (Sandbox Code Playgroud)
 public class MyService {
    private static final Logger log = LoggerFactory.getLogger(MyService.class);

    public void test(){
        log.info("test");
    }
}
Run Code Online (Sandbox Code Playgroud)

那么有没有办法在不指定-javaagent的情况下编织这些@Configrable对象?我有兴趣学习如何在将WAR作为WAR部署到独立Tomcat 8服务器和/或在作为'胖'jar启动时使用嵌入式Tomcat 8服务器时完成此操作. …

aspectj load-time-weaving tomcat8 spring-boot embedded-tomcat-8

13
推荐指数
1
解决办法
1197
查看次数

Spring Boot:覆盖用于查找 application.properties 配置文件的约定

我正在查看位于此处的 spring-boot 文档

具体来说,有关考虑属性的顺序的部分:

进一步来说:

打包在 jar 内的特定于配置文件的应用程序属性(application-{profile}.properties 和 YAML 变体)

首先我要提到的是,使用这种方法加载配置文件特定配置时没有任何问题(前提是这些文件位于 classpath:/ 或 classpath:/config.xml 中)。

然而,我希望做的是实现如下所示的约定:

classpath:/default/application.properties
classpath:/{profile}/application.properties
Run Code Online (Sandbox Code Playgroud)

此外,我想在不使用该spring.config.location属性的情况下实现此配置。我对 Spring Boot 还很陌生,所以我正在寻找一些关于如何实现此约定的提示。根据我的研究,这似乎可以通过添加自定义 ConfigFileApplicationListener 来实现。请告诉我这是否是一个合理的起点或任何其他可能更好的想法。

更新:似乎如果我可以以编程方式构建spring.config.location 属性列表,我可以在 classpath:/default、classpath:{profile} 等位置传递。基于 spring.profiles.active 环境变量。以下 ConfigFileApplicationListener 似乎是我想调用的:

public void setSearchLocations(String locations)
Run Code Online (Sandbox Code Playgroud)

但是,我不确定在生命周期的哪个位置进行这样的调用。

spring spring-boot

4
推荐指数
1
解决办法
5610
查看次数

logback的shutdownHook是否取消注册jmxConfigurator

我正在使用<jmxConfigurator/>logback 中的元素; jmxConfigurator声明如下:

Thus, unless your application is a standalone Java application, you **MUST** unregister the JMXConfigurator instance from the JVM's Mbeans server.
Run Code Online (Sandbox Code Playgroud)

logback文档还提到了一个<shutdownHook/>配置元素,根据文档执行以下操作:

Installing a JVM shutdown hook is a convenient way for shutting down logback and releasing associated resources.
Run Code Online (Sandbox Code Playgroud)

是否包含<shutdownHook/>元素注意取消注册<jmxConfigurator/>

jmx logback

4
推荐指数
1
解决办法
1054
查看次数

sts 3.6.1:默认服务器未添加到工作区; 无法为Pivotal 3.0选择tomcat7

当我使用STS 3.6.0默认的'Servers'文件夹时(Vmware vFabric v2.5 - v.2.9),总是会添加到我创建的任何新工作区中.自安装以来,STS 3.6.1我不再看到默认的"服务器"附加到工作区.现在似乎STS 3.6.1是捆绑Pivotal tc Server v3.0,这似乎有利于Tomcat 8的默认底层二进制文件(这需要Java SE 7,但我需要使用Java SE 6(这是我的工作区默认))所以我最好猜测为什么自动我没有添加'Servers'文件夹,因为我没有将Java SE7设置为我的工作区默认设置,但我有点惊讶Tomcat 8被认为是tc Server的默认二进制文件;

我也有问题为我的工作区手动添加服务器

(e.g. New->Server->Pivotal tcServer v3.0) 
Run Code Online (Sandbox Code Playgroud)

在我选择了'Pivotal tcServer v3.0'所选的默认Tomcat版本的位置后Tomcat 8.0.9.B.RELEASE.选择后我收到以下警告:

"Tomcat 8 requires Java SE7 or later. Change the JRE to one that meets this requirement"
Run Code Online (Sandbox Code Playgroud)

明白了,但......

当我选择Tomcat 7.0.55.A.RELEASE作为版本时,我仍然看到相同的消息,我无法继续添加服务器.(我的理解是Java SE6支持Tomcat 7.x).这是我认为的意外行为,因为我的工作区默认JRE支持Tomcat 7.是否存在此问题?

sts-springsourcetoolsuite spring-tool-suite tcserver

2
推荐指数
1
解决办法
2万
查看次数

如何下载旧版STS?

我想下载3.6.0 sts-bundle但我找不到在https://spring.io/tools/sts/all上执行此操作的地方.我只看到3.6.1的下载.有谁知道可以做到这一点?谢谢.

sts-springsourcetoolsuite spring-tool-suite

2
推荐指数
1
解决办法
4476
查看次数