spring注解方式配置以及spring4的泛型注入 (4)
首先,在用注解之前,先在配置文件中加入以下配置,在base-package下自动扫描目录及子目录的注解 ,具体可以下载我的代码查看,下文有连接
<context:component-scan base-package="com.hp.spring"></context:component-scan>
一、@Controller 注解控制层(action)
@Controller
public class UserAction {
    @Autowired
    private UsreService usreService;
}
其中@Autowired 注入依赖,此外,@Resource和@Inject注解与@Autowired 类似
二、@Service 注解服务层
@Service
public class UsreService {
    @Autowired
    private UserDao userDao;
}
三、@Repository 持久层
@Repository
public class UserDao {
}
四、spring4的泛型注入测试
1 创建两个实体User和Role
public class User {
} 
public class Role {
}
2 baseDao抽取泛型基础curd
public class BaseDao<T> {
    public void save(T entity){
        System.out.println("Save:" + entity);
    }
}
3 两个实现类UserDao 和 RoleDao
@Repository
public class RoleDao extends BaseDao<Role>{
} 
@Repository
public class UserDao extends BaseDao<User>{
}
4 baseService
public class BaseService<T> {
    @Autowired
    private BaseDao<T> dao;//这里会自动根据实际类型传入User或Role
    public void addNew(T entity){
        System.out.println("addNew by " + dao);
        dao.save(entity);
    }
}
5 UserService 和RoleService
@Service
public class RoleService extends BaseService<Role>{
} 
//若注解没有指定 bean 的 id, 则类名第一个字母小写即为 bean 的 id
@Service
public class UserService extends BaseService<User>{
}
6 测试类
    public static void main(String[] args) {
        ApplicationContext ctx = new ClassPathXmlApplicationContext("beans-annotation.xml");
        UserService userService = (UserService) ctx.getBean("userService");
        userService.addNew(new User());
        RoleService roleService = (RoleService) ctx.getBean("roleService");
        roleService.addNew(new Role());
    }
整个系列项目代码: http://git.oschina.net/nmc5/spring
spring注解方式配置以及spring4的泛型注入 (4)的更多相关文章
- spring注解方式在一个普通的java类里面注入dao
		
spring注解方式在一个普通的java类里面注入dao @Repositorypublic class BaseDaoImpl implements BaseDao {这是我的dao如果在servi ...
 - spring 注解方式配置Bean
		
Spring能够从classpath下自动扫描,侦测和实例化具有特定注解的组件特定组件包括: @Component:基本注解,标示了一个受Spring管理的Bean组件 @Respository:标识 ...
 - Spring注解方式配置Redis
		
@Configuration public class RedisConfiguraion { @Bean public JedisConnectionFactory redisConnectionF ...
 - SSH深度历险(十) AOP原理及相关概念学习+AspectJ注解方式配置spring AOP
		
AOP(Aspect Oriented Programming),是面向切面编程的技术.AOP基于IoC基础,是对OOP的有益补充. AOP之所以能得到广泛应用,主要是因为它将应用系统拆分分了2个部分 ...
 - Spring Aop实例@Aspect、@Before、@AfterReturning@Around 注解方式配置
		
用过spring框架进行开发的人,多多少少会使用过它的AOP功能,都知道有@Before.@Around和@After等advice.最近,为了实现项目中的输出日志和权限控制这两个需求,我也使用到了A ...
 - 跟着刚哥学习Spring框架--通过注解方式配置Bean(四)
		
组件扫描:Spring能够从classpath下自动扫描,侦测和实例化具有特定注解的组件. 特定组件包括: 1.@Component:基本注解,识别一个受Spring管理的组件 2.@Resposit ...
 - Spring boot 基于注解方式配置datasource
		
Spring boot 基于注解方式配置datasource 编辑  Xml配置 我们先来回顾下,使用xml配置数据源. 步骤: 先加载数据库相关配置文件; 配置数据源; 配置sqlSessionF ...
 - spring学习笔记 星球日two - 注解方式配置bean
		
注解要放在要注解的对象的上方 @Autowired private Category category; <?xml version="1.0" encoding=" ...
 - Spring框架学习(6)使用ioc注解方式配置bean
		
内容源自:使用ioc注解方式配置bean context层 : 上下文环境/容器环境 applicationContext.xml 1 ioc注解功能 注解 简化xml文件配置 如 hibernate ...
 
随机推荐
- Table边框合并
			
<style> table, table tr th, table tr td { border: 1px solid #0094ff; } table { width: 200px; m ...
 - Jlink V8固件恢复
			
使用附件中的PDF文档步骤即可,但是千万千万记得两点,更新系统很关键,很关键 1.WINXP系统 2.32Bit系统 切记切记,其他的win7,winxp 64就不用试着更新了,全部是坑 大概步骤 J ...
 - LOJ6485  LJJ 学二项式定理 解题报告
			
LJJ 学二项式定理 题意 \(T\)组数据,每组给定\(n,s,a_0,a_1,a_2,a_3\),求 \[ \sum_{i=0}^n \binom{n}{i}s^ia_{i\bmod 4} \] ...
 - CSScomb.js  --- 自定义 CSS 编写风格配置文件
			
一.排序分类 1. content overflow position z-index display float ... 表示定位/布局的属性(content比较特殊,作为伪元素不可少的,经常放置于 ...
 - RMQ区间求最值
			
RMQ用于区间快速查找最值,适用于期间数值无更改的情况.其预处理的复杂度为O(nlogn),查询的时间复杂度为O(1),对比于线段树的预处理O(nlogn),查询O(logn)来说,在某些情况下有着其 ...
 - Python每日一题 001
			
Github地址:https://github.com/Yixiaohan/show-me-the-code Talk is Cheap, show me the code. --Linus Torv ...
 - jmeter之-图形监控
			
一.安装 https://jmeter-plugins.org/downloads/old/ 下载JMeterPlugins-Standard-1.4.0(监听器-图形界面)和ServerAgent- ...
 - error LNK2019: 无法解析的外部符号 _PhInitializePhLib,该符号在函数 _EnumHandle 中被引用
			
编译时提示上面的错误,而确实应用了该函数的库文件,直接搜索lib文件内容,发送该函数的声明如下_PhInitializePhLib@0 说明函数的编译方式和库文件的编译方式不同,发现该工程的调用约定为 ...
 - CSS:百科
			
ylbtech-CSS:百科 1.返回顶部 CSS (层叠样式表) 层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标 ...
 - RQNOJ PID4 数列
			
题目描述 给定一个正整数k(3≤k≤15),把所有k的方幂及所有有限个互不相等的k的方幂之和构成一个递增的序列,例如,当k=3时,这个序列是: 1,3,4,9,10,12,13,… (该序列实际上就是 ...