Spring
文章平均质量分 75
肥龙上天
我暂时还不想告诉你...
展开
-
Spring 笔记一: 简述
Spring框架最根本的使命: 简化JAVA开发Spring框架关注于通过依赖注入,面向切面编程和消除样板式代码来简化企业级JAVA开发.四种关键策略为了降低Java开发的复杂性,Spring采取了以下4种关键策略: 基于POJO的轻量级和最小侵入性编程; 通过依赖注入和面向接口实现松耦合; 基于切面和惯例进行声明式编程; 通过切面和模板减少样板式代...原创 2018-03-05 16:57:09 · 183 阅读 · 0 评论 -
Spring返回自定义header及Content-type
在使用Spring中, 如果直接对Resopnse中的content-type赋值,会被系统忽略, 如: @GetMapping("/e2") public String getE2( HttpServletResponse response) throws IOException { response.setHeader("content-type", "application/...原创 2018-08-10 09:33:15 · 17671 阅读 · 1 评论 -
手动模拟实现Spring-AOP
Spring中AOP设计思路是这样的.在BeaFactory.getBean()时,调用方法initBean(); 在该方法中判断当前Bean是否含有满足SpEL表达式的Method, 没有的话, 返回原始的Bean, 有的话, 会对当前Bean做动态代理, 当代理对象的方法被调用时,会发送通知到Aop拦截器,进而实现Aop的功能.本篇文章思路接着上篇文章, (手动模拟实现Spr...原创 2018-05-07 18:10:02 · 1230 阅读 · 0 评论 -
手动模拟实现Spring-MVC
SpringMVC功能的实现主要由两部分实现 1. 配置ContextLoaderListener在Web容器启动过程中生成WebApplicationContext, 用来存储Web容器上下文,初始化Ioc等. 2. 配置DispatcherServlet,用来拦截Servlet请求,实现MVC功能.其中WebApplicationContext我们在上一篇博客已经模拟实现了, 本文章接...原创 2018-05-07 15:48:18 · 1081 阅读 · 0 评论 -
手动模拟实现Spring-IOC
Spring框架太大,读源码包装太严重, 抽丝剥茧整理出主要思路,自己模拟一份Spring框架,该框架支持如下功能: DI,IOC,等基础功能; 主要类如下: FLBeanDefinition: 保存XML中Bean被解析后的基本信息, FLBeanWrapper: 包装实例化的Bean,以及被代理的bean FLDefaultListableBeanFactory,用来...原创 2018-05-07 11:17:36 · 1530 阅读 · 0 评论 -
StandardContext 启动详解
StandardContext初始化过程StandardContext的启动主要由startInternal ()完成的 本方法主要完成以下功能:1.所有Children容器[wrapper]的启动 2.初始化WebappLoader 3.实例化contextManager并启动 等………启动过程源码://org.apache.catalina.core.Standar...原创 2018-04-28 11:18:56 · 3055 阅读 · 0 评论 -
ContextLoaderListener 初始化过程.
ServletContextListener 生命周期昨用:监听 ServletContext 对象被创建或销毁的 Servlet 监听器, 在当前 WEB 应用被加载时对当前 WEB 应用的相关资源进行初始化操作: 如: 创建数据库连接池,创建Spring 的 IOC 容器,读取当前 WEB 应用的初始化参数等配置:在web.xml中进行配置:<...原创 2018-04-27 17:28:43 · 1678 阅读 · 0 评论 -
MyBatis 中 MapperScannerConfigurer分析
myBatis源码学了一段时间, 突然对接口的Mapper类怎么变成FactoryBean注入到项目中很好奇, 找时间研究了下, 做个总结.在以前的分析代码中, 手动调用Mapper访问数据的过程如下; IUserMapper mapper = session.GetMapper(IUserMapper.class); UserBean bean = mapper.selectByP...原创 2018-04-27 14:12:49 · 345 阅读 · 0 评论 -
Spring AOP源码 浅析
NND ,源码实在复杂,先整理个思路吧AOP配置文件demo<bean id="daoImpl" class="com.xx.xx.pcwebv2.Dao.CDaoImp" /><bean id="timeHandler" class="com.xx.xx.pcwebv2.Dao.TimeHandler" /><aop:config prox原创 2018-05-03 17:42:36 · 551 阅读 · 0 评论 -
DispatcherServlet初始化过程详解
DispatcherServlet作用DispatcherServlet是前端控制器设计模式的实现,提供Spring Web MVC的集中访问点,而且负责职责的分派,而且与Spring IoC容器无缝集成,从而可以获得Spring的所有好处。 DispatcherServlet加载过程1.调用无惨构造函数,初始化DispatcherServlet实例2.StandardCo...原创 2018-04-25 14:20:06 · 1909 阅读 · 0 评论 -
xml中 aop:aspect aop:advisor如何配置
我们知道Spring-AOP的核心执行流程是这样的. 1. Spring Ioc初始化所有Bean. 如果初始化Bean的时候发现改Bean满足pointcut中SpEl表达式, 则将该Bean做动态代理. 2. 在Bean的方法执行时,判断该Bean是否为代理对象,若是代理对象的话, 判断当前Method是否满足aop表达式, 3. 如果满足表达式,则按照顺序通知Aop配置的各通知(前,后...原创 2018-05-09 16:28:23 · 2909 阅读 · 2 评论 -
Servlet 启动过程
新增Web应用时创建注入ContextConfig对象;//org.apache.catalina.startup.Tomcat#addWebapp public Context addWebapp(Host host, String url, String name, String path) { silence(host, url);//1. 创建standar...原创 2018-04-25 09:36:21 · 714 阅读 · 0 评论 -
Tomcat请求处理一个请求的过程
Connector组件是Tomcat两个核心组件之一(另一个是Container),主要任务是负责接收客户端发过来的TCP连接请求,创建一个Request和Response对象用于和请求端交换数据。Tomcat使用Apache Coyote库来处理网络I/O的。Connector是通过适配器将自己“置入”这个框架中的,具体是org.apache.catalina.connector.Coy...原创 2018-04-24 15:09:02 · 4715 阅读 · 0 评论 -
JavaEE Servlet技术
Tomcat是一个Servlet容器,实现了Servlet规范,可以运行我们自己编写的Servlet应用程序处理动态请求,并返回响应,下面介绍Listener、Filter、Servlet、Request、Respones这几个比较常见的对象元素。1. ListenerServlet规范中定义了很多监听器,基于观察者模式将主要流程的控制/管理和事件的响应处理分离。主要分为两类: ...原创 2018-04-24 11:08:48 · 311 阅读 · 0 评论 -
基于XML 的依赖注入源码分析
1、依赖注入发生的时间当Spring IOC 容器完成了Bean 定义资源的定位、载入和解析注册以后,IOC 容器中已经管理类Bean定义的相关数据,但是此时IOC 容器还没有对所管理的Bean 进行依赖注入,依赖注入在以下两种情况发生: (1).用户第一次通过getBean 方法向IOC 容索要Bean 时,IOC 容器触发依赖注入。 (2).当用户在Bean 定义资源中为元素配置了la...原创 2018-04-13 17:45:10 · 168 阅读 · 0 评论 -
DispatcherServlet与ContextLoaderListener
DispatcherServlet与ContextLoaderListener 两个上下文的故事在Spring Web应用中,通常会创建两个上下文:DispatcherServle,和另一个由ContextLoaderListener创建的上下文。我们希望DispatcherServlet加载包含Web组件的bean,如控制器、视图解析器以及处理器映射,而ContextLoaderLi...原创 2018-04-04 14:50:05 · 443 阅读 · 0 评论