博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springMVC+jpa配置之简单案例
阅读量:7111 次
发布时间:2019-06-28

本文共 4956 字,大约阅读时间需要 16 分钟。

hot3.png

  搭建springMVC+jpa的亲身经历,看着网上的博客,自己摸索着搭建框架结果错误一大堆。现在把流程走一遍,方便以后查看。

  其中我遇到这样的一个问题:直接启动tomcat运行保存实体能通过,但是通过单元测试就报一下错误:

    Caused by: javax.validation.ValidationException: Unable to instantiate Configuration.

     解决方法:

    在persistence.xml中添加这个<property name="javax.persistence.validation.mode" value="none" /> 还是不行,然后百度了下,

    myeclipse 安装目录下找到 EE_6这个目录把bean-validator.jar去掉了结果成功了。

   但是我还是想不通,为啥删除那个就行了,而启动tomcat就不会,为啥tomcat会忽略这个问题。看到的大神还请指教。以下是行的通的,如有问题还请指教。(http://www.cnblogs.com/yuanfy008/p/4156287.html)

     第一步:准备相对应的jar包,其实我也不知道具体要用哪些包(这点需要我去学习的),先弄个大概的然后根据出现的错误一个一个的添加。

  

  第二步:配置web.xml

  

1 
2
7
8
9
index.jsp
10
11
12
13
contextConfigLocation
14
classpath*:spring-*.xml
15
16
17
org.springframework.web.context.ContextLoaderListener
18
19
20
21
encodingFilter
22
org.springframework.web.filter.CharacterEncodingFilter
23
24
encoding
25
UTF-8
26
27
28
forceEncoding
29
true
30
31
32
33
encodingFilter
34
/*
35
36 37
38
39
springMVC
40
org.springframework.web.servlet.DispatcherServlet
41
42
contextConfigLocation
43
classpath*:spring-mvc.xml
44
45
1
46
47
48
springMVC
49
/
50
51

第三步:配置跟hibernate相关的xml文件 spring-orm.xml

1 
2
15 16
17
18
19
20
21
22
23 24
25
26
27
28
29 30
31
32
33
34 35
36

第四步:配置jpa的配置文件 persistence.xml

org.hibernate.ejb.HibernatePersistence

第五步:配置springMVC相关的配置文件,spring-mvc.xml

第六步:然后用一个总的文件囊括这个几个配置文件,单元测试的时候就少些很多这些配置文件。spring-sevlet.xml

相应的配置完了,然后我们写个实体类,进行单元测试。我们这就以用户user为例。

@Entitypublic class User {        @Id    @GeneratedValue(generator = "uuidGenerator")    @GenericGenerator(name = "uuidGenerator", strategy = "uuid")     @Column(length = 32, nullable = false)    private String userId;        private String userName;    public String getUserId() {        return userId;    }    public void setUserId(String userId) {        this.userId = userId;    }    public String getUserName() {        return userName;    }    public void setUserName(String userName) {        this.userName = userName;    }}

对应的dao层IUserDAO如下:

public interface IUserDAO {        public void save(User user);}

对应的UserDAO如下:

@Repositorypublic class UserDAO implements IUserDAO {	@PersistenceContext(unitName="test")	private EntityManager entityManager;			@Transactional(rollbackFor = Exception.class)	@Override	public void save(User user) {				//System.out.println(entityManagerFactory);		this.entityManager.persist(user);		System.out.println("---"+user.getUserId());	}}

然后经典的单元测试来了,如下:

@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations={"classpath:spring-servlet.xml"})@TransactionConfiguration(defaultRollback = false)public class UserTest {        @Resource    private  IUserDAO userDAO ;        @Before    public void start(){        System.out.println("测试开始---");    }    @After    public void end(){        System.out.println("测试over---");    }        @Test    public void test1(){        User user = new User();        user.setUserName("test");        userDAO.save(user);        //System.out.println(userDAO);    }}

测试输出如下:

测试开始---

---2c92de9e4a340533014a340537290000
Hibernate: insert into User (userName, userId) values (?, ?)
测试over---

转载于:https://my.oschina.net/yuanfy/blog/378138

你可能感兴趣的文章
如果使用Github管理代码的方式文章
查看>>
菜鸟成长之路 第二周
查看>>
Android DialogFragment宽度占满高度自适应,4.4,5.1去掉默认Title
查看>>
人生的第一桶金 —— Nebulas DApp 开发从零开始
查看>>
微信内置浏览器私有接口WeixinJSBridge介绍
查看>>
麻省理工教授透露为什么80%黑客都使用Python!
查看>>
性能更优越的小程序图片懒加载方式
查看>>
Angular-3种创建动态内容的方式
查看>>
React 渲染优化:diff 与 shouldComponentUpdate
查看>>
讲道理,React中,我们为什么需要写 super(props)?
查看>>
Android开发之从零开始学RxJava 2.x(一)认识Rxjava
查看>>
(十三)spring cloud微服务分布式云架构-服务容错保护(Hystrix断路器)
查看>>
39 Combination Sum
查看>>
未来人工智能可能会拥有情绪
查看>>
如何优雅地使用 rm 防止误删除?
查看>>
servlet 的实现方法
查看>>
linux dhcp服务器 超级作用域
查看>>
二分查找
查看>>
对haproxy配置学习过程中几个点进行总结
查看>>
Oracle资源配置profile(二,2/2)
查看>>