Spring源码-ApplicationContext容器实现

第一种实现基于classpath下的xml格式的配置文件来创建。比较麻烦,嗯。

第二种就是基于磁盘路径下xml格式的配置文件来创建。

两种实现的工作的实现原理都非常简单,在底层就是创建了一个beanFactory,然后创建一个bean定义的读取器,只不过它可以去读取xml文件,然后把它转换成定义,两种实现的唯一区别就是调用加载方法loadBeanDefinitions时,一个new ClassPathResource,一个是FileSystemSource。

第三种也比较旧,是基于java的配置类来创建。

运行结果发现在容器中还有几个常用的后处理器,这是相较于前两种的优势,前两种还需要手动加入。

但是在xml中加入上述注解,也会帮我们自动的把后处理器加入到容器当中。

第四种实现也是基于java配置类来实现,但是是可以用于web环境的。也是先创建一个容器,给这个容器设置配置类信息。

但是这一次我们需要的更多,需要一个基于Servlet的web容器,没有web容器是没办法运行在web环境下的,但是我们是创建一个工厂,由工厂去进行创建,此时使用的是内置的TomCat服务器。因为SpringWeb层面的核心在于DispatcherServlet,前端浏览器或者其它途径发来的请求都会先经过DispatcherServlet,它就是一个前控制器。因为Servlet是运行在Tomcat服务器里的,因为此时这两者并没有产生联系,所以还需要一个Bean,把Servlet注册到Tomcat服务器当中,里面的第一个参数就是Servlet,第二个参数是可以通过的请求路径,经由dispatcherServlet之后再进行请求的分发,分发到不同的Controller当中。

最后添加一个控制器Bean用于演示,这里是要基于Controller接口,而不是Controller类,然后去服务器做个测试就好了,最后返回了一个hello。

总结

四种ApplicationContext的实现,后两种较前两种更常用,后两种的区别在于运行环境。

还学会了内嵌容器,DispathcherServlet的创建和作用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值