在静态方法中应用spring注入的类】的更多相关文章

最近在一次项目的重构中,原项目需要在静态方法中调用service,现在需要更换框架,service需要自动注入,无法再静态方法中调用 解决思路: 创建一个当前类的静态变量,创建一个方法,使用@PostConstruct 进行注解,被@PostConstruct修饰的方法会在服务器加载Servle的时候运行,并且只会被服务器执行一次.PostConstruct在构造函数之后执行,init()方法之前执行.方法中将当前service,调用时直接使用静态变量调用service 代码实例: @Compo…
package abu.csdn.servlet;    import java.io.IOException;    import javax.servlet.ServletContext;    import javax.servlet.ServletException;    import javax.servlet.http.HttpServlet;    import javax.servlet.http.HttpServletRequest;    import javax.serv…
遇到问题 遇到一个问题:在JSP中,使用Spring注入的Bean对象时,未能正确地获取到想要的对象. 郁闷的是,它也没报错. 研究问题 使用DEBUG功能(好久不在JSP里写Java代码了,都忘了JSP也可以打断点调试),跟踪了一下代码,发现确实有了我想使用的类的实例,不过是个代理类. 想到反射.代理相关的知识,貌似知道问题在哪了. 赶紧试了一下,果然…… 解决 在JSP里你要获得的Bean对象的类型,要定义成接口类,而不是实现类. 当然,这也视情况而定,我不确定,在JSP里使用Spring注…
场景:在ContextLoaderListener子类中加载job,为JobFactory的实现类声明@Component后,在ContextLoaderListener子类中为scheduler设置JobFactory.(主要解决的问题:在spring与quartz调用job时,job中无法读取注解类,实现注入) 步骤一: ContextLoaderListener子类中contextInitialized方法中代码如下: super.contextInitialized(event); ap…
在静态方法里直接调用非静态方法是不行的. 那如何调用spring注入的方法呢? @Component public class AutoLoginUtil {     @Autowired     private IUserService userService;     private static AutoLoginUtil autoLoginUtil;     @PostConstruct     public void init() {         autoLoginUtil = t…
我们在使用JBPM定义流程的时候经常要在流程定义文件中加入一个继承xxxHandler的类来实现我们的业务逻辑判断或者其他的需求,在这个类中一般都是用Spring的Application来获取,而这种情况每次都需要加载配置. 假设使用的Handle类是RoleAssignmentHandler,需要注入的属性石UserService, 以下有几种解决办法: 1.在RoleAssignmentHandler中把UserService声明成static //@Component public cla…
由于使用myeclipse自动生成的Delegate,所以在使用service实现层的时候,默认创建的时候都是使用new的方法: 这样就导致每一次请求过来都得new一个新的:如果service有注入其他的service时,就会出现null的情况: 出现该情况,有两种方法进行解决: 方法一,在serviceImpl实现成里面,使用的注入的service加一下null处理: private ITestService testService; private ITestService getTestS…
修改servlet 的 init 方法,添加以下代码: SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this, config.getServletContext()); 就可在servlet中使用注入了: @Autowired private MapApiconfigServiceI mapApiconfigService;…
@Componentpublic class ScriptExecuteContent { @Autowired private static SignRepository signRepository; public static String checkSign(String certNo, String acctNo, String instCode) { Sign sign = signRepository.findByCertNoAndAcctNoAndInstCode(certNo,…
       在项目中有时需要根据需要在自己new一个对象,或者在某些util方法或属性中获取Spring Bean对象,从而完成某些工作,但是由于自己new的对象和util方法并不是受Spring所管理的,如果直接在所依赖的属性上使用@Autowired就会报无法注入的错误,或者是没报错,但是使用的时候会报空指针异常.总而言之由于其是不受IoC容器所管理的,因而无法注入.         Spring提供了两个接口:BeanFactoryAware和ApplicationContextAwar…