Spring test

2020-03-18  本文已影响0人  拼搏男孩

1、绝对路径、相对路径与根路径

这三个路径经常搞不清楚,今天我重新梳理一下这三个路径的区别

D:
——mycompany
     ├─ web
        ├─ page
           ├─ utils.html
     │  ├─ utils.html
     │  └─ www.html
     ├─ abc.html
     └─ utils.html

现在假设我的mycompany目录在D盘根目录下,同时这也是我的项目的根目录,在这个目录下有一个文件夹web还有两个html文件,在web目录下有两个html文件,y一个目录page,其中一个是utils.html,以web的直接目录下的utils.html为出发点来说明这三个路径的区别。

2、数据库防止乱码

有时候尽管我们在前端页面、请求头以及响应头中设置了UTF-8编码,返回到前台的中文字符依然是乱码,这可能与我们的数据库编码有关:

url=jdbc:mysql://localhost:3306/book?characterEncoding=utf-8

这样设置以后数据库就是utf-8编码传输数据了。

3、@Resource与@Autowired的对比

相同点:

不同点:

@Resource装配顺序

1. 如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常
  2. 如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常
  3. 如果指定了type,则从上下文中找到类型匹配的唯一bean进行装配,找不到或者找到多个,都会抛出异常
  4. 如果既没有指定name,又没有指定type,则自动按照byName方式进行装配;如果没有匹配,则回退为一个原始类型进行匹配,如果匹配则自动装配

4、spring单元测试

junit自带的单元测试不能加载spring的配置文件,所以我们需要配合spring的单元测试,我们之前已经添加过spring单元测试的依赖,所以这里直接写代码就行了。

UserDaoTest

package com.qianfeng.dao;

import com.qianfeng.pojo.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import javax.annotation.Resource;
import java.util.List;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:spring-mybatis.xml")
public class UserDaoTest {
    @Resource
    private IUserDao userDao;
    @Test
    public void TestGetAllUsers() {
        List<User> users = userDao.getAllUsers();
        for (User user : users) {
            System.out.println(user);
        }
    }

    @Test
    public void deleteUser() {
    }

    @Test
    public void getUserById() {
        User user = userDao.getUserById(1);
        System.out.println(user);
    }

    @Test
    public void updateUser() {
    }

    @Test
    public void saveUser() {
    }
}

这个类是用来测试Dao层的,@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:spring-mybatis.xml")这两个注解的作用是配置加载类和配置上下文。我们只配置了spring-mybatis.xml这个spring配置文件是因为不需要spring-mvc.xml这个文件,只测试dao层用不到spring-mvc.xml的配置。

注意:一定要保持dao的接口名与对应的xml文件名一致,否则会出现org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)这种异常

5、正向工程与逆向工程

正向工程:pojo->数据库表
逆向工程:数据库表->pojo

上一篇 下一篇

猜你喜欢

热点阅读