相关疑难解决方法(0)

将bean注入Spring托管上下文之外的类中

我是我公司产品的最终用户.它不太适合集成到Spring中,但是我能够处理上下文并按名称检索所需的bean.但是,我仍然想知道是否有可能将bean注入到这个类中,即使该类不是由Spring本身管理的.

澄清:管理某些类MyClass生命周期的同一个应用程序也在管理Spring上下文的生命周期.Spring对MyClass的实例没有任何了解,我想知道如何将实例提供给上下文,但不能在上下文本身中创建实例.

java spring

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

Spring自动挂载列表

是否可以使用@Autowired列表?

就像我有mimetypes属性文件一样,在我的类文件中我有这样的东西

@Autowired
private List<String> mimeTypes = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)

spring list autowired

29
推荐指数
4
解决办法
5万
查看次数

在整个申请过程中,您在哪里使用Constants?

接口是一个可以存储我的接受的地方

public static final Foo bar
Run Code Online (Sandbox Code Playgroud)

你是否推断它们是从程序外读取的?你为它组成一个超级班吗?

当情况出现时,你是如何做到的?

java coding-style interface

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

如何在使用spring boot时配置动态属性?

我打算将Spring Boot用于我的任务.它是一个连接数据库的典型服务器应用程序.我知道我可以使用Spring Configuration外部化我的属性,例如数据库连接细节.但我还有其他需要在运行时更新的动态属性.例如鳍状肢/特征标志.我的应用程序的某些功能需要动态控制,例如想象app.cool-feature.enable = true之类的属性,然后在一段时间后app.cool-feature.enable = false关闭相同的功能

有什么建议在运行时采集这种动态行为的最佳做法是什么?我可以想到以下选项来触发变更......

  • 使用上述属性更改将JMS消息发送到服务器实例
  • 在服务器实例上调用公开的API端点,例如POST http:// myapp/admin/config/update {"config":{"app.cool-feature.enable":true}}

我知道我可以编写我自己的自定义代码来实现这个(这将是第三次),但只是想知道是否已经有我不知道的动态属性配置的标准方法/常见做法.如果它可以与Apache ZooKeeper,coreos etcd,Netflix策展人等其他解决方案一起使用并且与Spring紧密集成,那将会很棒.

思考?

java spring spring-boot etcd apache-zookeeper

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

使用Spring和注释@Value注入属性

我试图将属性文件加载到Spring bean中,然后将该bean注入到类中.

我无法工作的唯一部分似乎是使用@Resource参考.有人可以为我连接最后一块吗?我每次都得到一个空值.似乎不想注入价值.

[编辑] - 我原本以为使用@Resource是最好的方法,但我发现的解决方案更容易.

我在另一篇文章中看到这个解决方案

参考解决方案链接:将 属性值注入Spring - 由DON发布

感谢Don的帖子,但我不知道如何用@Resource完成它.

调试结果: 变量值appProperties始终为null.它没有被注射.

Spring Config. 在此输入图像描述

样品类:

package test;

import java.util.Properties;
import javax.annotation.Resource;


public class foo {
    public foo() {}
    @Resource private java.util.Properties appProperties;
}
Run Code Online (Sandbox Code Playgroud)

基于以下批准的解决方案中的建议.以下是我所做的更改.


解决方案更新

弹簧配置: 在此输入图像描述

Java类: 在此输入图像描述

java spring dependency-injection

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

Maven项目中的每个模块都应该有自己的Spring应用程序上下文吗?

我正在创建一个应用程序,我将项目分成不同的模块,如(域,存储库,服务和Web),以及许多用于邮件发送,文本格式化等的通用maven项目.我也使用Spring.

目前我只在Web项目中有Spring应用程序上下文文件.但是,由于我正在为文本格式化等创建一般的pupose项目,这些项目封装了实际应用程序中的库(例如freemarker),我不喜欢我必须在Web项目的Spring应用程序上下文文件中指定库依赖配置.

问题是,为每个模块分配一个单独的Spring应用程序上下文文件,然后在我使用它们的项目中导入上下文文件是否正确.这是正确的方法吗,还是有更好的方法?

我感兴趣的是当我使用XML文件而不是JavaConfig时如何解决这个问题.

java spring spring-mvc java-ee maven

7
推荐指数
1
解决办法
5508
查看次数

使用@Value注释

我有2个属性文件a.propertiesb.properties 我已经将应用程序上下文添加为:

<context:property-placeholder location="classpath:a.properties" />
<context:property-placeholder location="classpath:b.properties"/>
Run Code Online (Sandbox Code Playgroud)

具有属性的第一个文件包含数据库连接详细信息(这很有效)第二个 - 包含某些特定bean使用的属性.在那个bean中,我通过@Value注释使用这些属性

@Value("#{qw.er}")
private String someA;    
@Value("#{as.df}")
private String someB;
Run Code Online (Sandbox Code Playgroud)

但是我在启动时遇到异常:

 org.springframework.expression.spel.SpelEvaluationException: 
EL1008E:(pos 0): Field or property 'qw' cannot be found on object of type 
'org.springframework.beans.factory.config.BeanExpressionContext'
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

你有可能context:property-placeholder在一个文件中使用2 吗?

PS:属性qw.er和as.df仅存在于文件b.properties中

spring

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

如何在Tomcat中使用spring-style属性文件配置quartz scheduler?

我在Apache Tomcat上有一个Web应用程序.Web应用程序使用Quartz Scheduler.我quartz.properties使用-D包含以下属性的开关从类路径加载:

quartz.jndi=java:comp/env/something
org.quartz.dataSource.myJndiName.jndiURL=${quartz.jndi}
Run Code Online (Sandbox Code Playgroud)

但它没有用.也许,${quartz.jndi}唯一可以在Spring Context中使用PropertyPlaceholderConfigurerbean吗?是否可以在Spring中为Quartz Scheduler加载此属性文件?

java spring tomcat quartz-scheduler

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

使用注释将属性注入到 spring bean

正如这里这里所解释的,很清楚如何做到这一点,但似乎仍然无法使其发挥作用。我只是喜欢使用 @Value 注释来将属性注入到 spring bean 中。我创建了一个基本的 spring MVC 项目,其中包含一个控制器和一个 bean。

这是我的应用程序上下文:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:util="http://www.springframework.org/schema/util" xmlns:beans="http://www.springframework.org/schema/beans"
    xsi:schemaLocation="
   http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
   http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
   http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
   http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.1.xsd
   http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
   http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.1.xsd
   http://www.springframework.org/schema/oxm http://www.springframework.org/schema/oxm/spring-oxm-3.1.xsd">


<!-- Root Context: defines shared resources visible to all other web components -->

<context:component-scan base-package="me.co.fatsecret" />

<!-- Properties -->

<bean id="props"
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location" value="classpath:fatProperties.properties" />
</bean>


</beans>
Run Code Online (Sandbox Code Playgroud)

我有一个名为配置的 bean:

package me.co.fatsecret;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class Configuration …
Run Code Online (Sandbox Code Playgroud)

spring spring-mvc

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

春天@Value无法正常工作

import org.springframework.beans.factory.annotation.Value;
Run Code Online (Sandbox Code Playgroud)

我使用spring @ value从配置中获取值,它在其他类(控制器和其他服务)中也能正常工作,但在模型中不起作用:

public final class Page {
  @Value("${defaultUrl}")
  private static String defaultUrl; 

  private String url;

  public Page(String url) {
    this.url = url;
  }
  public Page() {
    this(defaultUrl);
  }
}
Run Code Online (Sandbox Code Playgroud)

在上述情况下,无法从Spring.value获取defaultUrl。有人知道为什么吗?

java spring

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