初级:SSM框架搭建遇到问题
tips
1、中文乱码
<1>web.xml中配置CharacterEncodingFilter
<2>Tomcat :server.xml文件中找到Connector标签,添加URIEncoding="UTF-8"
<3>Jsp文件头<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" %>
<4>传入数据库是乱码,在jdbcurl路径后加上字符编码集,mysql:jdbc:mysql://192.168.1.167:3306/test?characterEncoding=utf8
2、dao层或者service层没有被扫描到,没有bean能被注入
<1>application_context.xml文件中 不需要配置<context:component-scan base-package="cn.test"/>标签
在springMVC.xml中配置<context:component-scan base-package="cn.test"/>扫描标签即可
ps:后检验,两边配置扫描都可以,不冲突,可以从功能上来配置springMVC只扫描controller,spring除了controller都扫
spring的核心配置文件会在springMVC配置文件前被加载
web.xml中必须配置:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:application_context.xml</param-value>
</context-param><!-- 指定spring核心配置文件 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- spring上下文监听器 加载application_context.xml bean没有被注册,或者service没有被扫描到有可能上下文监听器没配置 -->
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springMVC.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
springMVC前端控制器 传入springMVC配置文件路径参数
3、junit测试相关
如果希望log4j不仅打印服务相关日志,还打印数据访问层的日志,级别调成DEBUG即可
log4j.rootCategory=DEBUG, stdout , R, D
写好dao层或者service层后 想要测试,可直接使用junit
eclipse配置配置项目路径 中添加junit4的jar包
编写一个测试类
package stb.test;
import java.util.HashMap;
import java.util.Map;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import stb.service.DevBaseInfoService;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:spring/spring_mybatis.xml"})
// 想要加载spring配置文件要用ContextConfiguration注解,log4j调成debug级别的话,sql语句也会打印
public class BaseTest {
@Autowired
private DevBaseInfoService devBaseInfoServiceImp;
@Test
public void test(){
// ac = new ClassPathXmlApplicationContext("spring/spring_mybatis.xml");
Map map = new HashMap();
map.put("DevId", "1");
map.put("DevName", "23456");
map=devBaseInfoServiceImp.selectOne(map);
System.out.println(map);
}
}

浙公网安备 33010602011771号