- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有 spring 配置类。因为我有一个类 ServerConfigurationService,它是外部库类,它没有标记为 spring bean。ServerConfigurationService 类用于以静态方式读取属性,如下
System.out.println(ServerConfigurationService.getString( "pii.encryption.cipherString", null));
ServerConfigurationService.java 类位于外部库
public class ServerConfigurationService
{
public final static String CURRENT_SERVER_URL = org.sakaiproject.component.api.ServerConfigurationService.CURRENT_SERVER_URL;
public final static String CURRENT_PORTAL_PATH = org.sakaiproject.component.api.ServerConfigurationService.CURRENT_PORTAL_PATH;
/**
* Access the component instance: special cover only method.
*
* @return the component instance.
*/
public static org.sakaipro
......................................................................
}
但是这个打印空值带有以下堆栈跟踪。
java.lang.Exception: traceback at org.sakaiproject.util.NoisierDefaultListableBeanFactory.destroySingletons(NoisierDefaultListableBeanFactory.java:94) at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1006) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:551) at org.sakaiproject.component.impl.SpringCompMgr.init(SpringCompMgr.java:160) at org.sakaiproject.component.cover.ComponentManager.getInstance(ComponentManager.java:98) at org.sakaiproject.component.cover.ComponentManager.get(ComponentManager.java:107) at org.sakaiproject.component.cover.ServerConfigurationService.getInstance(ServerConfigurationService.java:54) at org.sakaiproject.component.cover.ServerConfigurationService.getString(ServerConfigurationService.java:206) 2018-05-03 09:58:11,701 WARN main org.sakaiproject.component.impl.SpringCompMgr - Configuration: Unable to get and dump out the registered server config values because no ServerConfigurationService is available - this is OK if this is part of a test, this is very bad otherwise 2018-05-03 09:58:11,701 WARN main org.sakaiproject.component.impl.SpringCompMgr - get(org.sakaiproject.component.api.ServerConfigurationService):
@ComponentScan(basePackages = "org.sakaiproject.log.api")
@Configuration
public class SpringCryptoContext {
public SpringCryptoContext() {
}
public static void main(String[] args) throws Exception {
ApplicationContext context = new AnnotationConfigApplicationContext(
SpringCryptoContext.class);
System.out.println(ServerConfigurationService.getString(
"pii.encryption.cipherString", null));
}
}
最佳答案
您应该在应用程序中将您的类注册为 bean。因为如果您尝试将您的类注入(inject)任何其他 bean(即 Controller /服务)中,它将不可用,因为它的对象在 spring 容器中不可用。
在配置文件中将自定义类声明为 bean,如下所示:
@Bean
public ServerConfigurationService getServerConfigurationService(){
// configure your object.
}
关于java - Spring如何在spring上下文中使用非托管外部库类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50175005/
我是一名优秀的程序员,十分优秀!