zoukankan      html  css  js  c++  java
  • 170315、spring:@Autowired等注解的别样玩法

    适用场景:

    1、IOC容器完成启动就想加载进来的数据

    2、多个已经定义好的组件,想在使用的时候通过一行代码就全部拿到

    3、等等....

    联想:@Autowired、@Resources等也可以类似使用

    玩法(简单介绍两个,其中的原理自己可以琢磨)

    一、系统启动的时候就完成某些数据的加载

    例:我想在系统启动的时候就查出所有快递公司(这里使用的是dao,用的是mybatis)

    public class ExpressCompanyDao extends AbstractDao<ExpressCompany> {

    private static final String classStr = ExpressCompanyDao.class.getName();

    @Autowired

    public List<ExpressCompany> queryAll() {

    return sqlSessionTemplate.selectList(classStr+".queryAll");

    }

    }

    二、同时加载全部插件

    例:支付插件很多我想通过简单的方式全部加载

    父类(其中的抽象方法交给子类去实现)

    public abstract class PaymentPlugin implements Comparable<PaymentPlugin>

    插件一、

    @Component("yeepayPlugin")

    public class YeepayPlugin extends PaymentPlugin

    插件二、

    @Component("tenpayPartnerPlugin")

    public class TenpayPartnerPlugin extends PaymentPlugin

    ....

    他们都继承了PaymentPlugin

    如果想要在使用的时候就能直接拿到,一行代码就可以了

    @Autowired

    private List<PaymentPlugin> paymentPlugins = new ArrayList<PaymentPlugin>();

    这样就可以拿到全部插件了

  • 相关阅读:
    零碎知识点
    安卓内存泄漏8种可能
    检测内存泄漏
    kotlin协程
    webview
    安卓各布局优缺点
    splice方法
    angular服务使用
    CSS3的一些笔记
    let、var、const
  • 原文地址:https://www.cnblogs.com/zrbfree/p/6708795.html
Copyright © 2011-2022 走看看