zoukankan      html  css  js  c++  java
  • springboot中有用的几个有用aware以及bean操作和数据源操作

    本文参考了:

    https://blog.csdn.net/derrantcm/article/details/76652951

    https://blog.csdn.net/derrantcm/article/details/73456550

    通过以上可以获得springboot的许多知识。

    本文只是列出本人常用的两个aware.

    闲话少叙,直接上代码

    BeanFactoryAware  帮助获取各种bean

    import org.springframework.beans.BeansException;
    import org.springframework.beans.factory.BeanFactory;
    import org.springframework.beans.factory.BeanFactoryAware;
    import org.springframework.stereotype.Component;
    
    @Component
    public class BeanHelper implements BeanFactoryAware {
        
        private static BeanFactory beanFactory;
    
        @Override
        public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
            this.beanFactory = beanFactory;
        }
    
        public static <T>T getBean(String id,Class<T> type){        
            return  beanFactory.getBean(id,type);                
        }
        
        
        public static <T>T getBean(Class<T> type){        
            return  beanFactory.getBean(type);        
            
        }
        
        public static <T>T getBean(String beanName){        
            return  (T) beanFactory.getBean(beanName);        
        }
        
    }

    ApplicationContextAware 帮助获取上线文的信息,也可以操作bean

    import org.springframework.beans.BeansException;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.ApplicationContextAware;
    import org.springframework.stereotype.Component;
    
    @Component
    public class DsControl implements ApplicationContextAware {
        
        @Override
        public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
    //dataSource在springboot中是一个关键字 Object ds
    =applicationContext.getBean("dataSource") ; System.out.println("当前的连接池是:"+ds.getClass().getName()); System.out.println("-----gooooo"); String[] beanDefinitionNames = applicationContext.getBeanDefinitionNames(); for (String beanDefinitionName : beanDefinitionNames) { System.out.println(beanDefinitionName); } } }
  • 相关阅读:
    指定盘符获取u盘PID、VID、序列号等信息
    禁用u盘再启用
    golang 使用编译选项-H=windowsgui后,仍然输出log到console
    c#实现"扫描检测硬件改动"
    哈希表
    Python 环境搭建
    Python 简介
    Python 基础教程
    7.1.2 定义改进的Sales_date类
    第七章 类
  • 原文地址:https://www.cnblogs.com/lzfhope/p/9821749.html
Copyright © 2011-2022 走看看