项目笔记(ssh)

1.Dao层抽取

1
2
3
4
(1)BaseDaoImpl<T>-->BaseDao<T>
UserDaoImpl<User>-->UserDao<User>
(2)UserDao<User> extends BaseDao<T>
UserDaoImpl<User> extends BaseDaoImpl<T>

2.Action层抽取

1
2
(1)BaseAction<T> extends ActionSupport implements ModelDriven<T>
(2)UserAction<User> extends BaseAction<T>

3.通过反射创建对象

1
2
3
4
5
6
7
8
9
10
11
//在构造方法中动态获取实体类,通过反射创建model对象
//泛型指定user时,this为user,通过反射创建user对象赋值给model
public BaseAction() throws InstantiationException, IllegalAccessException {
//获取父类class属性
ParameterizedType genericsSuperclass = (ParameterizedType) this.getClass().getGenericSuperclass();
//获取泛型数组
Type[] actualTypeArguments = genericsSuperclass.getActualTypeArguments();
Class<T> entityClass = (Class<T>)actualTypeArguments[0];
//通过反射创建对象
model = entityClass.newInstance();
}