精华内容
下载资源
问答
  • 初学spring,写小项目时代码重复太多,想抽取到一个utils中,但返现用ApplicationContext 方法得到时莫名报错~~, ...然后就可以在spring初始化的时候会注入进ApplicationContext,之后可以getbean获取需要的bean了

    初学spring,写小项目时代码重复太多,想抽取到一个utils中,但返现用ApplicationContext 方法得到时莫名报错~~,
    后来发现 可以先实现 ApplicationContextAware ,实现方法

       private static ApplicationContext context;
        @Override
        public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
            context = applicationContext;
        }
    并且在spring配置文件中注册bean
    
      <bean id="context" class="com.cn.hnust.utils.Context">
    

    然后就可以在spring初始化的时候会注入进ApplicationContext,之后可以getbean获取需要的bean了

    展开全文
  • 1手动创建工具 package com.lhw.locktest.util; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context....

    1手动创建工具类

    package com.lhw.locktest.util;
    
    import org.springframework.beans.BeansException;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.ApplicationContextAware;
    import org.springframework.stereotype.Component;
    
    @Component
    public class TherdUtil implements ApplicationContextAware {
    
        private static ApplicationContext applicationContext = null;
    
        @Override
        public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
            if (TherdUtil.applicationContext == null) {
                TherdUtil.applicationContext = applicationContext;
            }
        }
    
        //获取applicationContext
        public static ApplicationContext getApplicationContext() {
            return applicationContext;
        }
    
        //通过name获取 Bean.
        public static Object getBean(String name) {
            return getApplicationContext().getBean(name);
        }
    
        //通过class获取Bean.
        public static <T> T getBean(Class<T> clazz) {
            return getApplicationContext().getBean(clazz);
        }
    
        //通过name,以及Clazz返回指定的Bean
        public static <T> T getBean(String name, Class<T> clazz) {
            return getApplicationContext().getBean(name, clazz);
        }
    
    
    }
    
    

    2调用配置类

                UserService userService = TherdUtil.getBean(UserService.class);
                userService.decStockNoLock();
    
    展开全文
  • 普通类调用dao层为空

    2020-11-10 15:37:53
    给该普通类添加@Component注解。 创建该普通类的自己的静态属性。 使用@Autowried注解引用dao层的接口。 创建init方法,并添加@PostConstruct注解,被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,...
    1. 给该普通类添加@Component注解。
    2. 创建该普通类的自己的静态属性。
    3. 使用@Autowried注解引用dao层的接口。
    4. 创建init方法,并添加@PostConstruct注解,被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器调用一次,类似于Serclet的inti()方法。被@PostConstruct修饰的方法会在构造函数之后,init()方法之前运行。
    @Component
    public class NewYDPYDecoder extends CumulativeProtocolDecoder {
    
        private static final Logger logger = LoggerFactory.getLogger(NewYDPYDecoder.class);
        @Autowired
        private YlRecordRepository ylRecordRepository;
        private static NewYDPYDecoder newYDPYDecoder;
    
        @PostConstruct
        private void init() {
    
            newYDPYDecoder = this;
            newYDPYDecoder.ylRecordRepository = this.ylRecordRepository;
    
        }
        public test(){
           YlRecordRepository ylRecordRepository = newYDPYDecoder.ylRecordRepository;
                              ylRecordRepository.save(null);
        }
    
    展开全文
  • springboot普通类调用dao service层方法

    千次阅读 2019-12-03 11:11:47
    1.创建一个实体并实现ApplicationContextAware接口,重写接口内的setApplicationContext方法来完成获取ApplicationContext实例 2.拿到ApplicationContext对象实例后就可以手动获取Bean的注入实例对象 3.调用dao 或...

    总结下来是:
    1.创建一个实体类并实现ApplicationContextAware接口,重写接口内的setApplicationContext方法来完成获取ApplicationContext实例
    2.拿到ApplicationContext对象实例后就可以手动获取Bean的注入实例对象
    3.调用dao 或service中的方法
    在这里插入图片描述
    网上两篇文章:
    一篇介绍bean,留给自己看:https://www.cnblogs.com/feng9exe/p/11214345.html
    一篇如何获取SpringBoot项目的applicationContext对象:
    https://www.jianshu.com/p/3cd2d4e73eb7

    展开全文
  •  找了很多的方法,无论是@Component 还是编写普通类实现编写工具类实现ApplicationContextAware,都获取不到,最后实现方法如下: ApplicationContext ctx = new ClassPathXmlApplicationContext("../../WEB...
  • SpringBoot: 普通类调用Dao层,报空指针异常(NullPointerException)
  • 在spring项目的普通java获取service或dao
  • 在spring管理的web项目里,譬如Struts和spring的项目,配置好后,Struts里...但是如果要在普通的工具里,使用service或dao,就会报空指针,因为这个普通的Java并不在spring管理下,不能使用spring注入的service...
  • 转:... 工具 import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.App
  • 但是普通的工具中调用service层。老是报null空指针。用new 对象可以,但是Dao层又开始报空指针。所以就获取不到dao层的方法。不能进行增删改查操作。 通过下面的上下文。可以解决这一国际难题。这特殊情况...
  • 在项目中经常会用到一些不是controller和service层的去访问dao层,或者是普通类访问service层。 前提: 首先确保dao,serivce全部可以在项目启动的时候扫描到 编写一个工具类,通过工具类去获取...
  • 普通类注入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....
  • SpringBoot 之 普通类获取Spring容器中的bean
  • ApplicationContext ctx = new ClassPathXmlApplicationContext("../applicationContext.xml"); //所需调用的接口注入bean所在的xml,../... private HibernateBaseDao dao = (HibernateBaseDao)ctx.getBean("hibernate
  • 普通Java中使用Dao对象。
  • spring的普通类如何注入service、dao

    千次阅读 2018-04-17 16:02:51
    在spring管理的web项目里,譬如Struts和spring的项目,配置好后,Struts里就可以...但是如果要在普通的工具里,使用service或dao,就会报空指针,因为这个普通的Java并不在spring管理下,不能使用spring注入的s...
  • } /** * 获取对象 * * @param name * @return Object 一个以所给名字注册的bean的实例 * @throws org.springframework.beans.BeansException * */ @SuppressWarnings("unchecked") public static...
  • 项目中我遇到同样的问题 特记载一下 有两种方式 一、 该类使用@Component注解 ...最后直接在普通类中调用即可 @Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。 被@Post...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 31,703
精华内容 12,681
关键字:

普通类获取dao