更多参考 http://www.jiajiajia.club/blog/artical/135
spring+springmvc+springDataJpa+maven
1.maven环境配置https://blog.csdn.net/qq_36489998/article/details/80525010
2.创建maven项目
项目目录如下:
发现jsp报错,接下来配置tomcat服务器
3.配置tomcat服务器
将项目加入服务器中
配置path
添加library
再选择source选项卡,将带差号的文件夹remove掉
再点击add folder
点击apply and close完成!!!
4.开始配置sssj
1. 在父项目的pom文件中加入必须的jar依赖
pom.xml
4.0.0
com.sssj.test
sssj
0.0.1-SNAPSHOT
pom
UTF-8
4.12
4.2.5.RELEASE
4.3.5.Final
4.0.4.Final
5.1.22
1.9.2
1.2.20
2.7
1.7.21
2.4
1.3.1
4.0.0-b01
1.2
commons-codec
commons-codec
1.9
com.mchange
c3p0
0.9.5.2
com.sun.mail
javax.mail
1.6.1
commons-dbutils
commons-dbutils
1.7
org.springframework
spring-core
${spring.version}
org.springframework
spring-beans
${spring.version}
org.springframework
spring-context
${spring.version}
org.springframework
spring-tx
${spring.version}
org.springframework
spring-jdbc
${spring.version}
org.springframework
spring-web
${spring.version}
org.springframework
spring-webmvc
${spring.version}
org.springframework
spring-aop
${spring.version}
org.springframework
spring-context-support
${spring.version}
org.springframework
spring-oxm
${spring.version}
org.aspectj
aspectjweaver
1.8.10
org.springframework.data
spring-data-jpa
1.5.2.RELEASE
org.hibernate
hibernate-core
${hibernate.version}
org.hibernate
hibernate-entitymanager
${hibernate.version}
org.hibernate.common
hibernate-commons-annotations
${hibernate.annotations.version}
org.hibernate.javax.persistence
hibernate-jpa-2.1-api
1.0.0.Final
mysql
mysql-connector-java
${mysql.driver.version}
log4j
log4j
1.2.17
org.slf4j
slf4j-api
${slf4j.version}
com.fasterxml.jackson.core
jackson-core
2.8.5
com.fasterxml.jackson.core
jackson-databind
2.8.5
javax.servlet
javax.servlet-api
3.1.0
provided
webapp
2.在resources文件夹下加入 spring的配置文件,以及springmvc的配置文件
在这里把springdatajpa的配置文件放在了applicationContxt中了
applicationContext.xml
true
true
update
spring-mvc。xml
修改web.xml配置文件
index.jsp
org.springframework.web.context.ContextLoaderListener
contextConfigLocation
classpath:applicationContext.xml
characterEncodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
forceEncoding
true
characterEncodingFilter
/*
contacts
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring-mvc.xml
1
contacts
/
java.lang.Throwable
/WEB-INF/views/error/404.jsp
404
/WEB-INF/views/error/404.jsp
500
/WEB-INF/views/error/500.jsp
因为spring-mvc.xml中视图管理器的配置
所以要在 web-inf文件夹下创建views文件夹,再创建一个index.jsp文件测试
到目前为止,启动tomcat已经没问题
5.集中测试
测试springmvc配置
首先再java文件夹下,创建如下文件夹
在controller文件夹下创建IndexController.java文件,内容如下
package com.sssj.test.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
@RequestMapping("/index")
public class IndexController {
@RequestMapping("/index")
public ModelAndView index() {
System.out.println("loading");
ModelAndView modelAndView=new ModelAndView("index");
return modelAndView;
}
}
修改web-inf下 index.jsp文件,取访问/index/index路径,上面的图片指错了,不是views文件夹下的
Hello World!
重新启动项目,在浏览器上点击hello world,跳转到了 views文件下的index.jsp
spring mvc配置成功
在entity文件夹下新建 SssjEntity 类如下
sssjEntity.java
package com.sssj.test.entity;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="testEntity")
public class SssjEntity {
@Id
@GeneratedValue
private Integer id;
private String name;
private String password;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public SssjEntity() {
super();
// TODO Auto-generated constructor stub
}
public SssjEntity(String name, String password) {
super();
this.name = name;
this.password = password;
}
@Override
public String toString() {
return "SssjEntity [id=" + id + ", name=" + name + ", password=" + password + "]";
}
public SssjEntity(Integer id, String name, String password) {
super();
this.id = id;
this.name = name;
this.password = password;
}
}
重新启动tomcat服务器,发现 数据库中已经建立了一个 testEntity数据表
说明springdatajpa已经配置完成了
接下来进行添加一条数据,测试
在dao层,和service层添加如下文件
MyRepository.java
package com.sssj.test.dao;
import org.springframework.data.repository.CrudRepository;
import com.sssj.test.entity.SssjEntity;
public interface MyRepository extends CrudRepository{
}
TestService.java
package com.sssj.test.service;
import javax.transaction.Transactional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.sssj.test.dao.MyRepository;
import com.sssj.test.entity.SssjEntity;
@Service
public class TestService {
@Autowired
private MyRepository myRepository;
@Transactional
public void addTest(SssjEntity sssj,SssjEntity sssj2) {
myRepository.save(sssj);
myRepository.save(sssj2);
}
}
修改IndexController.java如下
package com.sssj.test.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import com.sssj.test.entity.SssjEntity;
import com.sssj.test.service.TestService;
@Controller
@RequestMapping("/index")
public class IndexController {
@Autowired
private TestService TestService;
@RequestMapping("/index")
public ModelAndView index() {
System.out.println("loading");
TestService.addTest(new SssjEntity(1,"123","123"), new SssjEntity(2,"456","789"));
ModelAndView modelAndView=new ModelAndView("index");
return modelAndView;
}
}
向数据库中添加两条数据
new SssjEntity(1,"123","123"), new SssjEntity(2,"456","789")
在次访问index/index路径
http://localhost:8080/webapp/index/index
添加成功
测试成功
接下来测试 事务管理器 是否配置成功
先把原数据库中的数据删除
在testService.java中添加如下代码 int a=1/0; 我们手动制造异常
package com.sssj.test.service;
import javax.transaction.Transactional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.sssj.test.dao.MyRepository;
import com.sssj.test.entity.SssjEntity;
@Service
public class TestService {
@Autowired
private MyRepository myRepository;
@Transactional
public void addTest(SssjEntity sssj,SssjEntity sssj2) {
myRepository.save(sssj);
int a=1/0;
myRepository.save(sssj2);
}
}
再次访问 index/index路径
http://localhost:8080/webapp/index/index
发现 服务器执行了 第一条插入语句
在第二次插入之间报错
但是数据表里并没有数据
说明事务管理器配置成功,@Transactional注解起了作用
到此应该是大功告成
接下来就开始开发吧
也可以建立更多的 子项目 来满足我们的开发需求
只需要配置一下依赖就可以了