精华内容
下载资源
问答
  • 普通类注入service层和dao层

    千次阅读 2018-10-11 09:45:33
    1,写一个工具SpringTool: package com.zhiyu.util; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context....

    1,写一个工具类SpringTool:

    package com.zhiyu.util;
    
    import org.springframework.beans.BeansException;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.ApplicationContextAware;
    
    /**
     * 通过该类即可在普通工具类里获取spring管理的bean
     * @author wolf
     *
     */
    public final class SpringTool implements ApplicationContextAware {
        private static ApplicationContext applicationContext = null;
     
        @Override
        public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
            if (SpringTool.applicationContext == null) {
                SpringTool.applicationContext = applicationContext;
                System.out.println(
                        "========ApplicationContext配置成功,在普通类可以通过调用ToolSpring.getAppContext()获取applicationContext对象,applicationContext="
                                + applicationContext + "========");
            }
        }
     
        public static ApplicationContext getApplicationContext() {
            return applicationContext;
        }
     
        public static Object getBean(String name) {
            return getApplicationContext().getBean(name);
        }
    }

    2,在applicationContext.xml里面去注入bean:

    <bean class="com.zhiyu.util.SpringTool"/>

    3,在普通的类里面加入这行代码.就成功的注入了service层:

    public void updateStartTime(Integer id) {
            BusinessproService businessproService=    (BusinessproService)SpringTool.getBean("businessproService");
            businessproService.updateStartTime(id);
        }

     

     

    展开全文
  • Java普通类注入service对象

    千次阅读 2018-02-01 16:31:04
    找了很多办法,无论是加@Component还是编写工具实现ApplicationContextAware,始终为null。 最后使用这两行代码解决: WebApplicationContext context = ContextLoader.getCurrentWebApplicationContext(); ...

    找了很多办法,无论是加@Component还是编写工具类实现ApplicationContextAware,始终为null。

    最后使用这两行代码解决:

    WebApplicationContext context = ContextLoader.getCurrentWebApplicationContext();
    DailySurveyService service = (DailySurveyService) context.getBean("dailySurveyService");




    展开全文
  •  找了很多的方法,无论是@Component 还是编写普通类实现编写工具类实现ApplicationContextAware,都获取不到,最后实现方法如下: ApplicationContext ctx = new ClassPathXmlApplicationContext("../../WEB...

     

     找了很多的方法,无论是@Component  还是编写普通类实现编写工具类实现ApplicationContextAware,都获取不到,最后实现方法如下:

    ApplicationContext ctx = new ClassPathXmlApplicationContext("../../WEB-INF/springMVC-servlet.xml");                                    / //红色标注为spring的配置文件

     QuanJuBiaoDao quanJuBiaoDao = (QuanJuBiaoDao) ctx.getBean("quanJuBiaoDao");

    注入Dao的名称


      

    展开全文
  • 场景:使用Quartz定时器时,普通的java需要注入spring的service,在调用时报错! 解决方式: /** * 定时获取课程的service */ @Autowired protected QuartzGetCourseService quartzGetCourseService = ...

    场景:使用Quartz定时器时,普通的java类需要注入spring的service类,在调用时报错!

    解决方式:


        /**
         * 定时获取课程的service
         */
        @Autowired
        protected QuartzGetCourseService quartzGetCourseService = (QuartzGetCourseService) SpringContextUtil
                .getBean("quartzGetCourseService");
    import org.springframework.beans.BeansException;
    import org.springframework.beans.factory.NoSuchBeanDefinitionException;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.ApplicationContextAware;
    import org.springframework.stereotype.Component;
    
    /**
     * 在Spring 注解中,普通类获取@Service标记的方法或者bean对象
     *
     */
    @Component
    public class SpringContextUtil implements ApplicationContextAware {
        private static ApplicationContext applicationContext = null;
    
        @Override
        public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
            SpringContextUtil.applicationContext = applicationContext;
        }
    
        public static ApplicationContext getApplicationContext() {
            return applicationContext;
        }
    
        /**
         * 注意 bean name默认 = 类名(首字母小写) 例如: A8sClusterDao = getBean("a8sClusterDao")
         *
         * @param name
         * @return
         * @throws BeansException
         */
        public static Object getBean(String name) throws BeansException {
            return applicationContext.getBean(name);
        }
    
        /**
         * 根据类名获取到bean
         *
         * @param <T>
         * @param clazz
         * @return
         * @throws BeansException
         */
        @SuppressWarnings("unchecked")
        public static <T> T getBeanByName(Class<T> clazz) throws BeansException {
            try {
                char[] cs = clazz.getSimpleName().toCharArray();
                cs[0] += 32;// 首字母大写到小写
                return (T) applicationContext.getBean(String.valueOf(cs));
            }
            catch (Exception e) {
                e.printStackTrace();
                return null;
            }
        }
    
        public static boolean containsBean(String name) {
            return applicationContext.containsBean(name);
        }
    
        public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException {
            return applicationContext.isSingleton(name);
        }
    
    }

    调用结束,测试可以获取Service.

    借鉴文章地址找不到了!

    展开全文
  • 2.servlet方式,同时普通类作为bean注入 <servlet-name>initial <servlet-class>cn.xue.init.InitialServlet</servlet-class> <!-- 值最好大些,因为spring的ContextLoaderListener初始化完 --> ...
  • service手动注入普通类

    千次阅读 2018-11-08 14:56:19
    package MonitorMessage.util; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware;...
  • 开发过程中,有时会遇到需要在普通类注入spring管理的单例bean。直接注入注入不进去的,如图: 此时就可以使用下面的工具类来获取bean实例,如图: 附上ContextUtil代码: package com.qiang.Util; ...
  • spring如何对普通类进行注入  分享| 2009-05-12 22:3710806080 | 浏览 3514 次  编程语言 class="dao.impl.xardDaoImpl"> class="service.impl.xardServiceIm
  • SpringBoot普通类要使用其它的注入类办法创建一个工具类使用 创建一个工具类 @Component public class SpringBeanOperator implements ApplicationContextAware { private static ApplicationContext ...
  • 工具代码如下: import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org....
  • 普通类中使用Spring注入

    千次阅读 2017-06-02 16:58:35
    在编写工具类 提供方法的时候由于要注入service层,在编写的时候发现service层类注入失败,由于普通类不是通过spring进行管理的,所有注入service会失败。所以可以采用下面的方法。SpringTool需要加到spring配置中,...
  • SpringBoot项目将Bean注入普通类

    千次阅读 2020-01-03 09:25:28
    SpringBoot项目将Bean注入普通类中Spring管理的类获得一个注入的Bean方式非Spring管理的类获得一个注入的Bean方式普通类中通过ApplicationContext上下文获得Bean修改SpringBoot启动类,将ApplicationContext传入...
  • spring在普通类注入bean实例 或注入静态变量的bean  Spring的注入有一个问题就是普通类没有办法获得Bean文件中的bean实例。这就是如果是在Web的Servlet环境中可以通过WebApplicationContextUtils,如果是普通类就...
  • 加@Component注解 注入需要引入的service @Autowired private UserService userService; 建静态文件 private static UserService users; 初始化方法 @PostConstruct public void init() { users= ...
  • 1 注入util类 2 构造该类的单利方式 3 单利获取通过spring容器获取 4 在普通类中使用(下边是普通类中的方法)
  • spring的普通类如何注入service、dao

    千次阅读 2018-04-17 16:02:51
    在spring管理的web项目里,譬如Struts和spring的项目,配置好后,Struts里就可以...但是如果要在普通的工具里,使用service或dao,就会报空指针,因为这个普通的Java并不在spring管理下,不能使用spring注入的s...
  • Spring在普通类中使用自动注入Bean

    千次阅读 2018-05-14 17:07:13
    Spring在普通类中使用自动注入Bean在Spring中,我们会在Controller层使用自动注入的Service层,在Service层使用自动注入的Dao层,如果想在普通的类中使用自动注入Service或者是Dao层时,可以这样做:1、在相应的类上...
  • 需要自定义方法: ... import org.springframework.beans.BeansException; import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.context.ApplicationContext;...
  • 在一次普通类中使用@Autowired、@Resource或者@Autowired+@Qualifier对变量进行自动注入,在spring容器中,该实例对象已经注册后成功,但是自动注入失败。 原因分析: 普通类是无法实现@Autowired等自动注入的,需要...
  • 为了让导入功能和业务逻辑分开,就把这个导入功能做成一个独立的Util工具. ** 问题描述 把导入功能和业务逻辑分开后,所遇到的问题就是,这个导入功能需要依赖其他的资源,按照一般的注解方法肯定是行不通了,那么,...
  • 1.创建工具 package com.jeesite.modules.sys.utils; import com.jeesite.modules.sys.service.CardLoginUsersService; import com.jeesite.modules.sys.service.UserService; import org.springframework....
  • 使用quartz做定时任务,任务需要定时到数据库查询,向查到记录的用户发送信息,因涉及到数据库查询,需要...* 获取spring上下文里的bean,方便在普通类里也可以使用 * @author Administrator * */ @Component //注...
  • 问题:在一个工具中,@Autowired注解注入Service或者mapper,service, mapper为null? 解决步骤: 借鉴了网上其他大佬的解决办法,记录一下 第一步:工具上面加@Component注解 第二步: 静态初使化当前 第...
  • Spring的设计原则是尽可能的用实例,且是尽可能多的用单态实例,从它Bean的配置文件中...Spring的注入有一个问题就是普通类没有办法获得Bean文件中的bean实例。这就是如果是在Web的Servlet环境中可以通过WebApplication
  • 在springboot框架中,如果我们如果直接向controller或者serviceImpl层注入接口是可以直接注入的,但是如果向普通类直接注入接口是注入不进去的。 我们通过@PostConstruct这个注解来解决 被这个注解 标记的方法 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 97,803
精华内容 39,121
关键字:

普通类怎么注入