SpringBoot+Quartz定时任务:Job类对象注入问题(定时任务报错)

旧城冷巷雨未停 提交于 2019-11-25 18:59:24

1、quartz的扫描的优先级比

@Autowired注入对象的优先级高;

2、可以使用springbean获取对象

eg:

ILeaseLeasorBlacklistService blacklistservice = SpringUtils.getBean(ILeaseLeasorBlacklistService.class);
ILeaseSupplierCompanyinforService companyinforservice = SpringUtils.getBean(ILeaseSupplierCompanyinforService.class);

3、springUtils的代码如下:

package com.admin.common.utils.spring;  import org.springframework.aop.framework.AopContext; import org.springframework.beans.BeansException; import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.beans.factory.config.BeanFactoryPostProcessor; import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; import org.springframework.stereotype.Component;  /**  * spring工具类 方便在非spring管理环境中获取bean  *   * @author admin  */ @Component public final class SpringUtils implements BeanFactoryPostProcessor {     /** Spring应用上下文环境 */     private static ConfigurableListableBeanFactory beanFactory;      @Override     public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException     {         SpringUtils.beanFactory = beanFactory;     }      /**      * 获取对象      *      * @param name      * @return Object 一个以所给名字注册的bean的实例      * @throws org.springframework.beans.BeansException      *      */     @SuppressWarnings("unchecked")     public static <T> T getBean(String name) throws BeansException     {         return (T) beanFactory.getBean(name);     }      /**      * 获取类型为requiredType的对象      *      * @param clz      * @return      * @throws org.springframework.beans.BeansException      *      */     public static <T> T getBean(Class<T> clz) throws BeansException     {         T result = (T) beanFactory.getBean(clz);         return result;     }      /**      * 如果BeanFactory包含一个与所给名称匹配的bean定义,则返回true      *      * @param name      * @return boolean      */     public static boolean containsBean(String name)     {         return beanFactory.containsBean(name);     }      /**      * 判断以给定名字注册的bean定义是一个singleton还是一个prototype。 如果与给定名字相应的bean定义没有被找到,将会抛出一个异常(NoSuchBeanDefinitionException)      *      * @param name      * @return boolean      * @throws org.springframework.beans.factory.NoSuchBeanDefinitionException      *      */     public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException     {         return beanFactory.isSingleton(name);     }      /**      * @param name      * @return Class 注册对象的类型      * @throws org.springframework.beans.factory.NoSuchBeanDefinitionException      *      */     public static Class<?> getType(String name) throws NoSuchBeanDefinitionException     {         return beanFactory.getType(name);     }      /**      * 如果给定的bean名字在bean定义中有别名,则返回这些别名      *      * @param name      * @return      * @throws org.springframework.beans.factory.NoSuchBeanDefinitionException      *      */     public static String[] getAliases(String name) throws NoSuchBeanDefinitionException     {         return beanFactory.getAliases(name);     }      /**      * 获取aop代理对象      *       * @param invoker      * @return      */     @SuppressWarnings("unchecked")     public static <T> T getAopProxy(T invoker)     {         return (T) AopContext.currentProxy();     } } 

  4、获取对象代码

LeaseLeasorBlacklistMapper leaseLeasorBlacklistMapper = SpringUtils.getBean(LeaseLeasorBlacklistMapper.class); 

  

 

 

来来关注下,认识下!!!!!!!!!!!!!!!!!!

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!