spring引发的一些概念的理解
2013-09-11 15:58
274 查看
简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
Spring 模块分为:
1.Spring 核心模块:提供了IOC即依赖注入,spring
核心最主要的是beanFactory.
2.Spring AOP: 定义实现了AOP并利用其提供了拦截器实现事务管理.
3.Spring
上下文context模块:用地资源装载和资源邦定,事件移植和透明装载上下文等功能,并继承了spring的核心功能.
4.Spring
Web模块:提供web的集成其它提供了ContextLoaderListener并提供了Jsf等集成所需要的类.
5.Spring
Dao模块:提供了jdbc抽象层使开发不用去编写jdbc代码能分析数据库厂商的sql错误代码,同事提供编程方式和声明式控制事务.
6.Spring ORM模块:提供了当前的ORM技术框架的集成如hibernate
,ibatis,jdo等.
7.Spring MVC:提供了web
mvc的实现,并清楚的划分了web各项功能,如表单生成和校验器等.
知道spring的各功能有利我们更深入的了了spring,也有利于我的开发工作!
******************************************************
AOP、OOP在字面上虽然非常类似,但却是面向不同领域的两种设计思想。OOP(面向对象编程)针对业务处理过程的实体及其属性和行为进行抽象封装,以获得更加清晰高效的逻辑单元划分。
而AOP则是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。这两种设计思想在目标上有着本质的差异。
上面的陈述可能过于理论化,举个简单的例子,对于“雇员”这样一个业务实体进行封装,自然是OOP/OOD的任务,我们可以为其建立一个“Employee”类,并将“雇员”相关的属性和行为封装其中。而用AOP设计思想对“雇员”进行封装将无从谈起。
同样,对于“权限检查”这一动作片断进行划分,则是AOP的目标领域。而通过OOD/OOP对一个动作进行封装,则有点不伦不类。
换而言之,OOD/OOP面向名词领域,AOP面向动词领域。
传统的程序通常表现出一些不能自然地适合单一的程序模块或者是几个紧密相关的程序模块的行为,AOP
将这种行为称为横切,它们跨越了给定编程模型中的典型职责界限。横切行为的实现都是分散的,软件设计师会发现这种行为难以用正常的逻辑来思考、实现和更改。最常见的一些横切行为如下面这些:
日志记录,跟踪,优化和监控
事务的处理
持久化
性能的优化
资源池,如数据库连接池的管理
系统统一的认证、权限管理等
应用系统的异常捕捉及处理
针对具体行业应用的横切行为
____________________
*************************************
SST
发现spring3 的基于注解的springMVC超级方便。(以前认为spring MVC
配置很麻烦。)比struts2还方便。
1.下载STS 2.新建模板项目-》spring MVC
会有配置文件和WellcomeController自动生成配置在app-config里面表示是支持注解,要导包(自动配置,自动生成)
3.新建个controller @Controller @RequestMapping("/test") public
class HelloController { @RequestMapping("test1") public
ModelAndView test2(HttpServletRequest request, HttpServletResponse
response,helloForm form)throws Exception{
request.setAttribute("name", form.getName());
request.setAttribute("pwd", form.getPwd()); String[]
cc=request.getParameterValues("cc"); System.out.print(cc);
request.setAttribute("cc", cc); return new ModelAndView("test"); }
} 这里我还自己建立个form
4.在view文件夹下 建立自己的页面,显示内容(配置在)mvc-config (自动配置,自动生成)
5.开服务器,访问127.0.0.1:8080/项目名/test/test1就好了想当方便啊,而且@RequestMapping("/test")支持方法,传值过滤。很强大,很方便,告别了配置文件。。
<:property value="/WEB-INF/views/"
name="prefix"><:property value=".jsp"
name="suffix">****************************************************</:property></:property>
<:property value="/WEB-INF/views/"
name="prefix"><:property value=".jsp"
name="suffix">*******************************************************
Roo is not a runtime:只介入开发过程,这点我很喜欢。
Roo is not an IDE
plugin:可以用eclipse的STS插件,但不依赖于IDE,好处是更新或者切换版本时不至于太突兀,这点用过某XXStudio就感同身受了。
Roo is not an annotation processing
library:Roo不会使用java的api来处理ann,也就是说它都不介入compile阶段,它只是把java文件当文本文件来处理里面的ann。
万恶的maven再次出现,Roo构建出来的project是基于pom结构的。
</:property></:property>
Spring 模块分为:
1.Spring 核心模块:提供了IOC即依赖注入,spring
核心最主要的是beanFactory.
2.Spring AOP: 定义实现了AOP并利用其提供了拦截器实现事务管理.
3.Spring
上下文context模块:用地资源装载和资源邦定,事件移植和透明装载上下文等功能,并继承了spring的核心功能.
4.Spring
Web模块:提供web的集成其它提供了ContextLoaderListener并提供了Jsf等集成所需要的类.
5.Spring
Dao模块:提供了jdbc抽象层使开发不用去编写jdbc代码能分析数据库厂商的sql错误代码,同事提供编程方式和声明式控制事务.
6.Spring ORM模块:提供了当前的ORM技术框架的集成如hibernate
,ibatis,jdo等.
7.Spring MVC:提供了web
mvc的实现,并清楚的划分了web各项功能,如表单生成和校验器等.
知道spring的各功能有利我们更深入的了了spring,也有利于我的开发工作!
******************************************************
AOP、OOP在字面上虽然非常类似,但却是面向不同领域的两种设计思想。OOP(面向对象编程)针对业务处理过程的实体及其属性和行为进行抽象封装,以获得更加清晰高效的逻辑单元划分。
而AOP则是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。这两种设计思想在目标上有着本质的差异。
上面的陈述可能过于理论化,举个简单的例子,对于“雇员”这样一个业务实体进行封装,自然是OOP/OOD的任务,我们可以为其建立一个“Employee”类,并将“雇员”相关的属性和行为封装其中。而用AOP设计思想对“雇员”进行封装将无从谈起。
同样,对于“权限检查”这一动作片断进行划分,则是AOP的目标领域。而通过OOD/OOP对一个动作进行封装,则有点不伦不类。
换而言之,OOD/OOP面向名词领域,AOP面向动词领域。
传统的程序通常表现出一些不能自然地适合单一的程序模块或者是几个紧密相关的程序模块的行为,AOP
将这种行为称为横切,它们跨越了给定编程模型中的典型职责界限。横切行为的实现都是分散的,软件设计师会发现这种行为难以用正常的逻辑来思考、实现和更改。最常见的一些横切行为如下面这些:
日志记录,跟踪,优化和监控
事务的处理
持久化
性能的优化
资源池,如数据库连接池的管理
系统统一的认证、权限管理等
应用系统的异常捕捉及处理
针对具体行业应用的横切行为
____________________
*************************************
SST
发现spring3 的基于注解的springMVC超级方便。(以前认为spring MVC
配置很麻烦。)比struts2还方便。
1.下载STS 2.新建模板项目-》spring MVC
会有配置文件和WellcomeController自动生成配置在app-config里面表示是支持注解,要导包(自动配置,自动生成)
3.新建个controller @Controller @RequestMapping("/test") public
class HelloController { @RequestMapping("test1") public
ModelAndView test2(HttpServletRequest request, HttpServletResponse
response,helloForm form)throws Exception{
request.setAttribute("name", form.getName());
request.setAttribute("pwd", form.getPwd()); String[]
cc=request.getParameterValues("cc"); System.out.print(cc);
request.setAttribute("cc", cc); return new ModelAndView("test"); }
} 这里我还自己建立个form
4.在view文件夹下 建立自己的页面,显示内容(配置在)mvc-config (自动配置,自动生成)
5.开服务器,访问127.0.0.1:8080/项目名/test/test1就好了想当方便啊,而且@RequestMapping("/test")支持方法,传值过滤。很强大,很方便,告别了配置文件。。
<:property value="/WEB-INF/views/"
name="prefix"><:property value=".jsp"
name="suffix">****************************************************</:property></:property>
<:property value="/WEB-INF/views/"
name="prefix"><:property value=".jsp"
name="suffix">*******************************************************
Roo is not a runtime:只介入开发过程,这点我很喜欢。
Roo is not an IDE
plugin:可以用eclipse的STS插件,但不依赖于IDE,好处是更新或者切换版本时不至于太突兀,这点用过某XXStudio就感同身受了。
Roo is not an annotation processing
library:Roo不会使用java的api来处理ann,也就是说它都不介入compile阶段,它只是把java文件当文本文件来处理里面的ann。
万恶的maven再次出现,Roo构建出来的project是基于pom结构的。
</:property></:property>
相关文章推荐
- Spring学习时对一些概念的理解
- 关于对于spring当中一些基础概念的理解
- JAVA中的一些概念, IOC DI spring 讲的很好很容易理解
- Powershell一些概念的理解:管道符
- 一些书中很好理解的概念描述
- Spring AOP概念理解 (通俗易懂)
- 关于SVN的一些概念和配置文件理解
- spring基础概念AOP与动态代理理解
- Spring学习之路二——概念上理解Spring
- 有关Spring AOP的概念理解
- java入门时的一些基本概念的理解(j2ee,j2se,j2me,jdk,sdk,jre,jvm,跨平台)
- 有关基于模型的设计(MBD)一些概念和理解(zz)
- spring-boot一些概念
- Spring AOP概念理解 (通俗易懂)
- Spring学习笔记:1、概念理解
- 关于Spring Boot 的一些简单理解和应用
- spring面试题 对DI , AOP概念的理解
- 协方差矩阵的概念,算法以及自己的一些理解
- 关于负载均衡一些概念的正确理解
- Spring学习-概念理解