初级: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);

}

}

 

posted @ 2018-03-22 09:51  feiry  阅读(150)  评论(0)    收藏  举报