Spring 支持 AspectJ的注解式切面编程。AOP可以让一组类共享相同的行为。
Spring 支持 AspectJ的注解式切面编程。AOP可以让一组类共享相同的行为。
Spring MVC使用MockMvc和Junit进行单元测试
声明一点:对于软件质量的保证,单元测试真的非常有必要,在CMMI-5标准也是对单元测试有明确要求的。
有的公司的对开发要求严谨的话,开发流程可能执行的是测试驱动开发(TDD
),即根据拿到需求,开发人员先写预期单元测试用例,再根据满足测试用例的要求来开发业务代码。
在不启动项目的情况下,对Spring Web项目,需要一些Servlet
相关的模拟对象,比如:MockMvc,MockHttpSession,MockHttpServletRequest,MockHttpServletResponse
等,还需要WebAppConfiguration
。
Spring MVC使用MockMvc和Junit进行单元测试
声明一点:对于软件质量的保证,单元测试真的非常有必要,在CMMI-5标准也是对单元测试有明确要求的。
有的公司的对开发要求严谨的话,开发流程可能执行的是测试驱动开发(TDD
),即根据拿到需求,开发人员先写预期单元测试用例,再根据满足测试用例的要求来开发业务代码。
在不启动项目的情况下,对Spring Web项目,需要一些Servlet
相关的模拟对象,比如:MockMvc,MockHttpSession,MockHttpServletRequest,MockHttpServletResponse
等,还需要WebAppConfiguration
。
文件上传统一处理工具类。
Spring MVC 提供了MultipartFile
类来接收文件对象。
错误:jsp放在src/main/resources目录,SpringMVC反回视图正确,但浏览器报404
问题描述:
jsp
文件放在src/main/resources/jsp/
目录,Maven
配置的是Tomcat7
服务器插件,通过Maven build
运行后,访问该项目,浏览器报404
错误,但 SpringMVC没有报错,打印显示的映射路径和转发到的物理视图都无异常。 war
包布署到Tomcat7 和 8
服务器上运行,浏览器或以正常访问到src/main/resources/jsp/
目录下的jsp
文件。jsp
移到webapp/WEB-INF/jsp/
目录下,修改视图的物理路径的前辍到该目录,使用Maven build
运行,浏览器访问正常。因素排除:
此问题还未找到具体原因,未能解决
报错:访问Maven
管理的SpringMVC
项目jsp
页面,错误:at org.apache.jsp.WEB_002dINF.jsp.index_jsp._jspInit(index_jsp.java:31)
原因:是项目的servlet-api
或jsp-api
两个jar
包与Tomcat
自带的包冲突导致。
解决:在pom.xml
文件,将这两个jar
包添加<scope>provided</scope>
控制,只在编译和测试有效。
AOP
:面向切面编程,是一种对OOP
思想再增强的编程思想。它是使用动态代理的技术对一些公共的代码进行统一管理,在需要增强时,使用动态代理对业务方法进行增强。
AOP 适合那些具有横切逻辑的应用场合,如性能监控,访问控制,事务管理及日志记录,通过横向抽取机制为这类无法通过纵向继承体系进行抽象的重复性代码提供解决方案。
AOP 将分散在各个业务逻辑代码中的相同代码通过横向切割的方式抽取到一个独立的模块中。
Spring框架提供了很多注解来方便使用其中的功能,现对常用的注解进行汇总。
org.apache.commons.lang.StringUtils工具类的常用方法
org.apache.commons.lang
包提供了非常好用的StringUtils
工具类,可以方便地对数据进行判断。
Web 应用都应该要求对输入数据和请求数据做数据校验,将异常和非法数据过滤掉,确保系统的健壮性。
数据校验分客户端校验和服务端校验,客户端校验主要在页面通过JavaScript来实现,过滤正常用户的误操作,仅做初步过滤;服务端校验是整个应用阻止非法数据的最后防线,客户端校验绝不能替代服务端的校验,客户端校验可以降低服务器的负载。