本人之前MyEclipse所开发的一个大型项目,由于接触到IntelliJ IDEA开发平台。为此进行IntelliJ IDEA进行了为期半年的学习之旅,学习了spring mvc ,spring boot 等现在常用的技术。发现通过IntelliJ IDEA+spring boot 来开发项目的话,在开发时间上大大减短了许多。
为此通过此次的转换,本人用了一个星期的时间把整个系统进行了移值。当然也用熬过通宵。下面本人将在移值上所遇到的问题进行一下说明。
一、项目
MyEclipse:struts2+jquery+自己所编写的数据库连接方法+mysql。
更换为IntelliJ IDEA:spring boot+spring mvc +自己所编写的数据库连接方法+mysql。
二、搭建spring boot 项目
1、要知道旧项目需要用到了哪些技术,在pom.xml中进行配置
2、数据库连接方式,在这里我没有用到jdbctemplate,只用到了mysql的驱动。
3、程序的目录结构(这点很重要,如果没有建好,需要对其每个java文件和jsp文件进行修改)
4、配置程序的session,防止session超时,监听器、项目的异常处理。
三、前端
1、spring boot 也建议不要用jsp,但由于旧项目中使用了大量的jsp,那么现在还是使用jsp吧,因为把所有的jsp换成html文件的话,工作量太大了。
2、将String path = request.getContextPath();替换为${pageContext.request.contextPath},
3、表单提交方式更改
$.ajax({
type:"post",
url:_url,
data : $("#studentCxzhFrm").serialize(),
dataType: "json",
success:function(data){
if(data){
}
},
error:function (e){
$.messager.alert("系统提示", "请检查数据准备性!","error");
}
});
将data : $("#studentCxzhFrm").serialize(),更改为: data : $("#studentCxzhFrm").serializeArray(),
4、表单中的属性名同bean的属性名保持一致。因为spring mvc会自动封装bean。
四、后端
1、去掉所有与struts2有关的类。
2、增加spring mvc的注解,如@RestController, @RequestMapping("/")等,
3、实现方法上,如果是用ajax提交的,则增 @ResponseBody注解返回json格式,如果是返回视图(ModelAndView),则不需要加@ResponseBody。
4、方法上需要增加参数,如果是表单提交,spring mvc会自动封装bean,则就加上一个bean的参数,spring mvc 为此也提供了一些参数使用,如request,response,session等。自己可以根据需要增加。
5、service类,使用spring mvc 的方式进行修改。在实现service类中增加@Service 注解,
6、dao类,使用spring mvc 的方式进行修改。在实现service类中增加@Repository注解,在此本人是用自己写的方式进行mysql数据库操作。所以在此不进行说明。
五、打包部属
在这个事情上,由于是移值项目,在此期间本人用了一天的时间才把项目打包好。期间也遇到了一些问题,如项目用到的jar包,pom.xml配置,spring boot启动时加载监听器,数据库连接程序。
pom.xml中需要增加一些依赖项,如下:
<!--JavaServer Pages Standard Tag Library,JSP标准标签库-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<!--内置tocat对Jsp支持的依赖,用于编译Jsp-->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<!--排除内置tomcat jar包 添加tomcat-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<!--添加Servlet依赖,只在编译时有效 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
在此说明一下,打好war包后,记得使用的spring boot的版本,从而选择tomcat版本。
以上是本人在移值上遇到的问题。由于本人技术有限,有些没有说到的地方,请理解。