简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
Spring 模块分为:
知道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结构的。