spring啟動加載類,手動加載bean


方法一:

 

public final class Assembler implements BeanFactoryPostProcessor { private static ConfigurableListableBeanFactory beanFactory; // Spring應用上下文環境
     public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { Assembler.beanFactory = beanFactory; initMerchant(); }

 

實現該接口,可以在spring的bean創建之前,修改bean的定義屬性。
也就是說,Spring允許BeanFactoryPostProcessor在容器實例化任何其它bean之前讀取配置元數據,並可以根據需要進行修改
 手動注冊bean:
 private static ConfigurableListableBeanFactory beanFactory; // Spring應用上下文環境 DefaultListableBeanFactory beanFactory2 = (DefaultListableBeanFactory) beanFactory; BeanDefinitionBuilder beanMer = BeanDefinitionBuilder.genericBeanDefinition(className); beanMer.setParentName(beanType); beanMer.addPropertyValue("mrchCode", corgNum); beanMer.addPropertyValue("connectionName", beanName); beanMer.setInitMethodName("init"); beanMer.setInitMethodName("isMerchantOpen"); beanName = beanType + "_" + corgNum; beanFactory2.registerBeanDefinition(beanName, beanMer.getRawBeanDefinition());
方法二:
public class InitConfig extends HttpServlet implements ServletContextListener { @Override public void contextDestroyed(ServletContextEvent arg0) { logger.info("銷毀。。。。"); timer.cancel(); } @Override public void contextInitialized(ServletContextEvent arg0) { logger.info("初始化。。。。"); //手動讓spring容器管理此類 SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this); } <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <listener>
    <listener-class>jsfirst.weixin.InitConfig</listener-class>
  </listener>

 

 
 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM