spring

        在Spring开发中,一个普通对象想要拿到spring当中的bean,普通的将其new实例化出来是不行的,因为不知道该bean是否依赖其他的bean,而且由Spring管理的bean直接手动实例化是会报错的(由spring管理的bean不能手动将其实例化)

   所以可以写一个类专门获取applicationContext(实现ApplicationAwar接口)在Spring容器实例化时,由于该类实现了applicationAwa接口,就会将applictionContextion传回来,我们可以用静态方法将其返回出去.

@Component
public class ApplicationContextBean implements ApplicationContextAware {
    public static  ApplicationContext applicationContext;

    @Override
    public void setApplicationContext(ApplicationContext context) throws BeansException {
        applicationContext=context;
    }
    public static ApplicationContext getApplicationContext() {
        return applicationContext;
    }

}

可以写一个工具类专门处理需要的需要获取哪些bean

public class BeanUtil {

    private    ApplicationContext applicationContext;


    public BeanUtil() {

        AnnotationConfigApplicationContext
                context = new AnnotationConfigApplicationContext(Config.class);
        this.applicationContext=ApplicationContextBean.getApplicationContext();
    }

    public  <T> T getMyBean(Class<T> clazz) {
        return applicationContext.getBean(clazz);
    }

    public  Object getMyBean(String name) {
        return applicationContext.getBean(name);
    }

    public  <T> T getMyBean(String name, Class<T> clazz) {
        return applicationContext.getBean(name, clazz);
    }

}

故此想要获取一个bean只需要将工具类实例化(Spring容器也将实例化,管理的bean也将随之实例化),在调用getMyBean方法即可.

1. 泛型方法的定义

当在一个方法签名中的返回值前面声明了一个 < T > 时,该方法就被声明为一个泛型方法。< T >表明该方法声明了一个类型参数 T,并且这个类型参数 T 只能在该方法中使用。当然,泛型方法中也可以使用泛型类中定义的泛型参数

public <类型参数> 返回类型 方法名(类型参数 变量名) {

(1)只有在方法签名中声明了< T >的方法才是泛型方法,仅使用了泛型类定义的类型参数的方法并不是泛型方法。

public class Test<U> {
    // 该方法只是使用了泛型类定义的类型参数,不是泛型方法
    public void testMethod(U u){
        System.out.println(u);
    }
    
    // <T> 真正声明了下面的方法是一个泛型方法
    public <T> T testMethod1(T t){
        return t;
    }
}

(2)泛型方法中可以同时声明多个类型参数。

(3)泛型方法中也可以使用泛型类中定义的泛型参数。

(4)特别注意的是:泛型类中定义的类型参数和泛型方法中定义的类型参数是相互独立的,它们一点关系都没有。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值