A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

原文地址https://www.cnblogs.com/linhp/p/5881778.html

首先,在用注解之前,先在配置文件中加入以下配置,在base-package下自动扫描目录及子目录的注解 ,具体可以下载我的代码查看,下文有连接
<context:component-scan base-package="com.hp.spring"></context:component-scan>一、@Controller 注解控制层(action)@Controllerpublic class UserAction {        @Autowired    private UsreService usreService; } 二、@Service 注解服务层@Servicepublic class UsreService {        @Autowired    private UserDao userDao;  }三、@Repository 持久层@Repositorypublic class UserDao {} 四、spring4的泛型注入测试1 创建两个实体User和Rolepublic class User {} public class Role {} 2 baseDao抽取泛型基础curdpublic class BaseDao<T> {    public void save(T entity){        System.out.println("Save:" + entity);    }}3 两个实现类UserDao 和 RoleDao@Repositorypublic class RoleDao extends BaseDao<Role>{} @Repositorypublic class UserDao extends BaseDao<User>{} 4 baseServicepublic 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@Servicepublic class RoleService extends BaseService<Role>{} //若注解没有指定 bean 的 id, 则类名第一个字母小写即为 bean 的 id@Servicepublic 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

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马