我很难将javax.servlet.ServletConfig
放入使用org.springframework.context.annotation.Configuration
注释的班级。
我的团队决定使用spring进行依赖注入,并且我尝试使用它来迁移我们的一个简单的Rest服务。
我的约束是:
org.springframework:spring-context
。web.xml
中定义。我需要得到它,用它实例化一个Bean并在代码中的几个地方注入生成的bean。我已经拥有的东西:
代码使用javax.ws.rs.core.Application
,其类似于:
public class MyApplication extends Application {
@Context
private ServletConfig cfg;
public DSApplication() {
}
@Override
public Set<Class<?>> getClasses() {
return new HashSet<>();
}
@Override
public Set<Object> getSingletons() {
Set<Object> set = new HashSet<>();
String injectionStr = cfg.getInitParameter("injection");
boolean injection = false;
if (null != injectionStr && !injectionStr.isEmpty()) {
injection = Boolean.valueOf(injectionStr);
}
if (injection) {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(
DSServiceProducer.class,
CContextBeanProvider.class
);
IDSService service = context.getBean(IDSService.class);
set.add(service);
} else {
set.add(new DSService()); //Old way
}
return set;
}
}
我需要CContextBeanProvider
中的servlet配置,如下所示:
@Configuration
public class CContextBeanProvider {
private ServletConfig cfg; // How to get this here ?
@Bean
public CContextBean cContextBean() {
String bean = cfg.getInitParameter("cpuContext");
return new CContextBean(bean);
}
}
CContextBean是从服务的web.xml中找到的字符串初始化的设置bean。
答案 0 :(得分:0)
您能否尝试将所有平针织CDI相关的罐子添加到您的应用程序中?