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>();
这样就可以拿到全部插件了
170315、spring:@Autowired等注解的别样玩法的更多相关文章
- Spring自动装配----注解装配----Spring自带的@Autowired注解
Spring自动装配----注解装配----Spring自带的@Autowired注解 父类 package cn.ychx; public interface Person { public voi ...
- Spring @Autowired、@Resource、@Required、@Component、@Repository、@Service、@Controller注解的用法和作用
Spring @Autowired,@Resource,@Required注解的用法和作用 Spring中 @Autowired标签与 @Resource标签 的区别 Spring注解@Compone ...
- spring in action 学习笔记五:@Autowired这个注解如何理解
@Autowired这个注解的意思就是自动装配.他把一个bean对象自动装配到另一个对象中.下面的案例证明了spring的自动装配. 定义一个Sixi类.代码如下: package com.qls.a ...
- Spring @Autowired 注解 学习资料
Spring @Autowired 注解 学习资料 网址 Spring @Autowired 注解 https://wiki.jikexueyuan.com/project/spring/annota ...
- Spring Boot@Component注解下的类无法@Autowired的问题
title: Spring Boot@Component注解下的类无法@Autowired的问题 date: 2019-06-26 08:30:03 categories: Spring Boot t ...
- 死磕Spring之IoC篇 - @Autowired 等注解的实现原理
该系列文章是本人在学习 Spring 的过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring 源码分析 GitHub 地址 进行阅读 Spring 版本:5.1. ...
- Spring+Mybatis基于注解整合Redis
基于这段时间折腾redis遇到了各种问题,想着整理一下.本文主要介绍基于Spring+Mybatis以注解的形式整合Redis.废话少说,进入正题. 首先准备Redis,我下的是Windows版,下载 ...
- Spring MVC常用注解
cp by http://www.cnblogs.com/leskang/p/5445698.html 1.@Controller 在SpringMVC 中,控制器Controller 负责处理由Di ...
- SpringMVC4 + Spring + MyBatis3 基于注解的最简配置
本文使用最新版本(4.1.5)的springmvc+spring+mybatis,采用最间的配置方式来进行搭建. 1. web.xml 我们知道springmvc是基于Servlet: Dispatc ...
随机推荐
- SQLSERVER中的timestamp 和 C#中的byte[] 转换
项目中由于需求设计,数据库中需要一个timestamp时间戳类型的字段来作为区别数据添加和修改的标识.由于timestamp在SQL SERVER 2005数据库中,不可为空的timestamp类型在 ...
- 小米手机解锁bootload教程及常见问题
小米手机解锁bl需要在官网提交申请,然后电脑解锁,具体步骤如下: 1.首先需要注册一个小米账号,并登陆. 2.到官网解锁网页提交申请:http://www.miui.com/unlock/index. ...
- atitit.提升研发管理的利器---重型框架 框架 类库的区别
atitit.提升研发管理的利器---重型框架 框架 类库的区别 1. 重型框架就是it界的重武器. 1 2. 框架 VS. 库 可视化图形化 1 3. 应用框架 1 4. 类库 2 5. 框架是不可 ...
- EditText禁止输空格
1.EditText禁止输空格 editText.setFilters(new InputFilter[]{filter}); private InputFilter filter=new Input ...
- [c#]分析器错误消息: 发现不明白的匹配。
(1)同样的变量名称 protected System.Web.UI.WebControls.Label lbltitle; protected System.Web.UI.WebControls.L ...
- Android 开发之Android 应用程序如何调用支付宝接口
1.到支付宝官网,下载支付宝集成开发包 由于android设备一般用的都是无线支付,所以我们申请的就是支付宝无线快捷支付接口.下面是申请的地址以及下载接口开发包的网址:https://b.alipay ...
- 这不是bug,而是语言特性
分析编程语言缺陷的一种方法是把所有的缺陷归于3类:不该做的做了,该做的没做,该做但做得不合适. 在使用switch case时,如果使用缺省的 fall through,请一定在旁边注释,因为97%的 ...
- 复现IIS6.0远程命令执行漏洞
出这个漏洞有一定时间了,一直没测试,因为知道这个漏洞有条件的,好吧,顺便感谢royal大佬今天晚上日内网的指点. 漏洞要求: 开启Webdav PS:不想刚拿下的内网服务器一下权限掉了,又不想放xx远 ...
- [device]/proc/devices and /dev/
1. /proc/devices和/dev cat /proc/devices 列出在当前运行的内核中已经注册的设备名称以及设备的Major主设备号.其中的设备信息是驱动程序在加载时生成的,也可以说是 ...
- catch signal
捕抓信号 如果信号的处理动作是用户自定义函数,在信号递达时就调用这个函数,称为捕抓信号. 除了SIGSTOP和SIGKILL进程能够忽略或捕获其他的全部信号. 注:信号可从两个不同分类角度对信号进行分 ...