首页 > 代码库 > spring4的新特性---泛型注入
spring4的新特性---泛型注入
废话不多说,直接上代码
一.写一个实体类
package generic; import java.io.Serializable; public class User implements Serializable{ /** * */ private static final long serialVersionUID = 1L; private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
二.公共DAO:BaseDao(crud都写在这里)
package generic; public abstract class BaseDao<T> { public void save(T t){ System.out.println("....."); } public void delete(){ System.out.println("...."); } }
三.DAO的具体实现:UserDa继承BaseDao
package generic; import org.springframework.stereotype.Repository; @Repository("userDao") public class UserDao extends BaseDao<User>{ }
四.公共Service:BaseService(这里写一些公共方法和一个抽象方法,抽象方法为了获取BaseService的具体实现)
package generic; public abstract class BaseService<T> { public abstract BaseDao<T> getBaseDao(); public void save(T t){ getBaseDao().save(t); } }
五.写BaseService的具体实现:UserService并继承BaseService
package generic; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service("userService") public class UserService extends BaseService<User>{ @Autowired private UserDao userDao; @Override public BaseDao<User> getBaseDao() { return userDao; } }
其中第四步和第五步是以前的写法,Spring4的新泻法如下:
新四:
package generic; import org.springframework.beans.factory.annotation.Autowired; public abstract class BaseService<T> { @Autowired private BaseDao<T> baseDao; public void save(T t){ baseDao.save(t); } }
新五:
package generic; import org.springframework.stereotype.Service; @Service("userService") public class UserService extends BaseService<User>{ }
大家可以看到现在的代码非常简洁,在步骤新四中,注入的时候spring会去自动去找BaseDao<User>的子类实现并注入
spring4的新特性---泛型注入
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。