spring:
- AOP,IOC
- XML 文件中配置对象,注入属性(set注入、有参构造注入||外部bean注入||内部bean注入||级联赋值)
- 注入集合:数组<array><value>、list<list><value>、map<map><entry>、set<set><value>
- xml自动装配
- 注解
- AOP: JDK动态代理,使用proxy类里方法创建代理对象
public class JDKProxy {
public static void main(String[] args) {
//创建接口实现类代理对象
Class[] interfaces = {UserDao.class};
// Proxy.newProxyInstance(JDKProxy.class.getClassLoader(), interfaces,
new InvocationHandler() {
// @Override
// public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
// return null;
// }
// });
UserDaoImpl userDao = new UserDaoImpl();
UserDao dao =
(UserDao)Proxy.newProxyInstance(JDKProxy.class.getClassLoader(), interfaces,
new UserDaoProxy(userDao));
int result = dao.add(1, 2);
System.out.println("result:"+result);
} }
//创建代理对象代码
class UserDaoProxy implements InvocationHandler {
//1 把创建的是谁的代理对象,把谁传递过来
//有参数构造传递
private Object obj;
public UserDaoProxy(Object obj) {
this.obj = obj;
}
//增强的逻辑
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws
Throwable {
//方法之前
System.out.println("方法之前执行...."+method.getName()+" :传递的参
数..."+ Arrays.toString(args));
//被增强的方法执行
Object res = method.invoke(obj, args);
//方法之后
System.out.println("方法之后执行...."+obj);
return res;
} }
- AOP操作
- JdbcTemplate
- 事务
springMVC:
- MVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分
- 配置web.xml注册前端控制器DispatcherServlet
- 配置springMVC.xml
- 获取请求参数:ServletAPI、控制器方法
- 域对象共享数据:servletAPI向request域对象共享数据、ModelAndView向request共享数据、Model向request域对象共享数据、map向request域对象共享数据、ModeMap向request域对象共享数据 || 向session域对象共享数据 || 向application域对象共享数据
- 视图:ThymeleafView、转发视图: "forward:/employee"、重定向视图:"redict:/employee"
- RESTful: GET获取资源,POST新建资源, PUT更新资源, DELETE删除资源
- HiddenHttpMethodFilter转换POST请求为DELETE或PUT
-
HttpMessageConverter 提供了两个注解和两个类型: @RequestBody , @ResponseBody ,RequestEntity ,
-
拦截器
-
异常处理器
mybatis:
- 支持定制化sql、存储过程和高级映射的持久层框架
- 动态sql
- 缓存机制
- 插件
- 代码生成
- 批量操作等