框架
来源:互联网 发布:php开发微信步骤 编辑:程序博客网 时间:2024/06/10 09:29
context->lisener->filter(chain.doFilter(),可以搞cors)->servlet
Spring MVC 的入口是 DispatcherServlet, 而 Struts2 是 FilterDispatcher.
Struts2:
Struts 2框架由3个部分组成:核心控制器FilterDispatcher、业务控制器和用户实现的业务逻辑组件。Struts 2框架获得了*.action请求后,将根据*.action请求的前面部分决定调用哪个业务逻辑组件.
Struts 2应用中的Action都被定义在struts.xml文件中,在该文件中定义Action时,定义了该Action的name属性和class属性,其中name属性决定了该Action处理哪个用户请求,而class属性决定了该Action的实现类。
Spring:
依赖注入是在编译阶段尚未知所需的功能是来自哪个的类的情况下,将对象所依赖的功能对象实例化的模式。依赖注入是控制反转的基础。依赖注入是一种实例化对象的方式。
控制反转(IoC/Inverse Of Control): 调用者不再创建被调用者的实例,由spring框架实现(容器创建)所以称为控制反转。容器创建对象
依赖注入(DI/Dependence injection) : 容器创建好实例后再注入调用者称为依赖注入。容器注入对象
service是业务层,dao是数据访问层。面向接口编程,表示层调用控制层,控制层调用业务层,业务层调用数据访问层。
Spring的核心是IoC控制反转,AOP面向切片的编程。
jeecms:SpringMVC3+Spring3+Hibernate3+Freemarker(模板引擎)+HTML5
IOC容器:管理对象的创建及依赖关系。
applicationcontext.xml:Spring的配置文件。注意dtd约束及版本号。
通过该配置文件的<beans><bean>给IOC容器设置元素。<bean>中的一个<propertyname>表示该bean的set属性,<ref bean>表示该bean引用的bean.
配置好beans以后,通过beanFactory去getBeans取得对应的bean。
BeanFactory 可以理解为含有bean集合的工厂类。BeanFactory 包含了种bean的定义,以便在接收到客户端请求时将对应的bean实例化。将bean自身与bean客户端的配置中解放出来。BeanFactory还包含了bean生命周期的控制,调用客户端的初始化方法(initialization methods)和销毁方法(destruction methods)。
ApplicationContext就是由BeanFactory派生出来的。有拥有BeanFactory的功能及一些配置文件,参数的读写性质。各种beans就配置在它当中,可以通过ApplicationContext的getBeans取得各种beans。
Spring可以通过<list>,<map>,<set>,<props>注入Collection。
Spring容器可以自动装配合作关系bean之间的关联关系(自动装配),但是默认禁止的,开发者需要自行在bean定义中用标签明确的设置依赖关系。
默认情况时,IoC容器内的对象时单实例的。这些实例在IoC初始化时就生成好了,并非在读取时生成。
设值注入:被IoC控制的类,提供默认的无参构造器,属性通过set name 注入。这样需改类(属性值,引用class)时,仅需该配置文件。可以不需保证某种依赖已经注入,即依赖对象可能是不完整的。解决了循环依赖。
构造注入:不提供属性的set方法,而提供带初始化参数的构造函数。<bean>内提供一个<construct-arg>即可。A,B对象循环引用就会出问题。
Spring的是设计模式有:代理,工厂,单例等。可以监听ApplicationContext 发布的事件:上下文的开始,关闭,更新,停止;请求更新等事件。
IoC:Inverse of Control:被调用对象不是调用对象new的,而是通过容器注入的。
控制反转一般分为两种类型,依赖注入(Dependency Injection,简称DI)和依赖查找(Dependency Lookup)。依赖注入应用比较广泛。控制反转是,关于一个对象如何获取他所依赖的对象的引用,这个责任的反转。依赖注入是控制反转的基础.
IoC容器管理的关键点:1必须将对象定义到spring的配置文件中;2必须定义注入属性的set,将spring对象注入。这些set属性并未通过硬编码,而是以bean配置组合在一起。(DIDepend Injection,依赖注入,解耦。)
通过IoC可以注入String,int,各种类,数组(array,value),list(list,value),set(set,value),map(map,entry)等。IoC是DI的基础,仅有IoC只能application.get取得对象,有了DI,就可以AutoWired。
<bean>属性:
id不能重复,name可以重复,scope默认是singleton,scope为prototype时,申请一次,产生一个新的对象。
bean的生命周期:singleton时在IoC容器初始化时就出现,直到容器销毁。
Spring Bean的作用域?
1.singleton:这种bean范围是默认的,这种范围确保不管接受到多少个请求,每个容器中只有一个bean的实例,单例的模式由bean factory自身来维护。故Spring Bean不是线程安全。
2.prototype:原形范围与单例范围相反,为每一个bean请求提供一个实例。
3.request:在请求bean范围内会每一个来自客户端的网络请求创建一个实例,在请求完成以后,bean会失效并被垃圾回收器回收。
4.Session:与请求范围类似,确保每个session中有一个bean的实例,在session过期后,bean会随之失效。
5.global-session:global-session和Portlet应用相关。
- 框架
- 框架
- 框架
- 框架
- 框架
- 框架
- 框架
- 框架
- 框架
- 框架
- 框架
- 框架?
- 框架
- 框架
- 框架
- 框架
- 框架
- 框架........
- HDU 1297 Children’s Queue
- 步进电机的失步与过冲
- HDU 1075 What Are You Talking About
- html格式标签
- SSH与maven整合配置
- 框架
- poj1002
- 欢迎使用CSDN-markdown编辑器
- [带权并查集] 学习一个
- [机器学习]04.多级分类(Multiclass classfication) 过度拟合(overfitting)
- 170524 逆向-CrackMe(1)
- 文本框不可编辑
- DeepLearning(基于caffe)实战项目(4)--Matlab测试训练好的model
- Resilio Sync:构建自己的云世界