Spring学习笔记
上面的是springMVC的工作原理图:
1、客户端发出一个http请求给web服务器,web服务器对http请求进行解析,如果匹配DispatcherServlet的请求映射路径(在web.xml中指定),web容器将请求转交给DispatcherServlet.
2、DipatcherServlet接收到这个请求之后将根据请求的信息(包括URL、Http方法、请求报文头和请求参数Cookie等)以及HandlerMapping的配置找到处理请求的处理器(Handler)。
3-4、DispatcherServlet根据HandlerMapping找到对应的Handler,将处理权交给Handler(Handler将具体的处理进行封装),再由具体的HandlerAdapter对Handler进行具体的调用。
5、Handler对数据处理完成以后将返回一个ModelAndView()对象给DispatcherServlet。
6、Handler返回的ModelAndView()只是一个逻辑视图并不是一个正式的视图,DispatcherSevlet通过ViewResolver将逻辑视图转化为真正的视图View。
7、Dispatcher通过model解析出ModelAndView()中的参数进行解析最终展现出完整的view并返回给客户端。
Spring配置注解详解:
Spring的两种代理JDK和CGLIB的区别浅谈:
Java动态代理是利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用invokeHandler类来处理;
而cglib动态代理是利用asm开源包,对代理对象类的class文件加载进来,通过修改其字节码的子类来处理。
1>如果目标对象实现了接口,默认情况下会采用JDK的动态代理实现AOP;
2>如果目标对象实现了接口,可以强制使用cglib实现AOP;
3>如果目标对象没有实现了接口,必须采用cglib库,Spring会自动在JDK动态代理和cglib之间转换;
推荐一个Spring Boot的导航网站:Spring Boot 中文导航
Spring boot使用的各种示例,以最简单、最实用为标准
- spring-boot-helloWorld:spring-boot的helloWorld版本
- spring-boot-mybaits-annotation:注解版本
- spring-boot-mybaits-xml:xml配置版本
- spring-boot-mybatis-mulidatasource:springboot+mybatis多数据源最简解决方案
- spring-boot-mybatis-annotation-mulidatasource:springboot+mybatis(注解版)多数据源最简解决方案
- spring-boot-thymeleaf:simple spring boot thymeleaf demo
- spring-boot-jpa-thymeleaf-curd:spring boot + jpa + thymeleaf 增删改查示例
- spring-boot-rabbitmq:spring boot和rabbitmq各种消息应用案例
- spring-boot-scheduler:spring boot和定时任务案例
- spring-boot-web:web开发综合使用案例
- spring-boot-mail:spring boot和邮件服务
- spring-boot-mongodb:spring boot和mongodb的使用
- spring-boot-multi-mongodb:spring boot和mongodb多数据源的使用
- spring-boot-package-war:spring-boot打包成war包示例
- spring-boot-shiro:springboot 整合shiro rbac示例
- spring-boot-file-upload:使用Spring Boot 上传文件示例
- spring-boot-fastDFS:Spring Boot 整合FastDFS示例
Favorites-web:云收藏(springboot实战开源项目)
参考文章
- springboot(一):入门篇
- springboot(二):web综合开发
- springboot(三):Spring boot中Redis的使用
- springboot(四):thymeleaf使用详解
- springboot(五):spring data jpa的使用
- springboot(六):如何优雅的使用mybatis
- springboot(七):springboot+mybatis多数据源最简解决方案
- springboot(八):RabbitMQ详解
- springboot(九):定时任务
- springboot(十):邮件服务
- springboot(十一):Spring boot中mongodb的使用
- springboot(十二):springboot如何测试打包部署
- springboot(十三):springboot小技巧
- springboot(十四):springboot整合shiro-登录认证和权限管理
- springboot(十五):springboot+jpa+thymeleaf增删改查示例
- springboot(十六):使用Jenkins部署Spring Boot
- springboot(十七):使用Spring Boot上传文件
- springboot(十八):使用Spring Boot集成FastDFS
- springboot(十九):使用Spring Boot Actuator监控应用
- springboot(二十):使用spring-boot-admin对spring-boot服务进行监控