ssm整合的配置文件及流程

项目构建:

ssm整合的配置文件及流程

 

 SqlMapConfig.xml文件配置(mybatis)

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
	<!-- 设置别名 -->
	<typeAliases>
		<typeAlias type="model.User" alias="user"/>
		<typeAlias type="model.Book" alias="book"/>
	</typeAliases>
	
	<!-- 配置mapper映射文件 -->
	<mappers>
		<mapper resource="model/UserMapper.xml"/>
		<mapper resource="model/BookMapper.xml"/>
	</mappers>
</configuration>

applicationContext.xml(spring)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:aop="http://www.springframework.org/schema/aop"
     xmlns:tx="http://www.springframework.org/schema/tx"
     xsi:schemaLocation="
     http://www.springframework.org/schema/beans
     http://www.springframework.org/schema/beans/spring-beans.xsd
     http://www.springframework.org/schema/tx
     http://www.springframework.org/schema/tx/spring-tx.xsd
     http://www.springframework.org/schema/aop
     http://www.springframework.org/schema/aop/spring-aop.xsd">

  
  <!-- 配置数据库连接池     DBCP-->
  <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  	<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
  	<property name="url" value="jdbc:mysql://localhost:3306/test1"></property>
  	<property name="username" value="root"></property>
  	<property name="password" value="root"></property>
  </bean>
  <!-- 事务管理器 -->
  <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  <property name="dataSource" ref="dataSource"/>
  </bean>
  
  <!-- 通知 -->
  <tx:advice id="txAdvice" transaction-manager="txManager">
	  <!-- 配置事务属性    隔离界别    传播机制 -->
	  <tx:attributes>
	  	<!-- *代表连接点匹配的所有方法      rollback-for 遇到任何异常都进行事务回滚-->
	    <tx:method name="*" isolation="READ_COMMITTED" propagation="REQUIRED" rollback-for="java.lang.Exception"/>    
	  </tx:attributes>
  </tx:advice>
  
   <aop:config>
   	<!-- 连接点表达式 匹配所有的 切入点 -->
  	<aop:pointcut id="fooServiceOperation" expression="execution(* dao.*.*(..))"/>
  	<!-- 通知加入到切入点 -->
  	<aop:advisor advice-ref="txAdvice" pointcut-ref="fooServiceOperation"/>
  	
  </aop:config>
  
  
  
  	<!-- 配置sqlSessionFactory -->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<!-- mybatis配置文件路径 -->
		<!--加载mybatis的全局配置文件  -->
		<property name="configLocation" value="classpath:config/SqlMapConfig.xml" />
		<!--数据库连接池 DBCP  -->
		<property name="dataSource" ref="dataSource" />
	</bean>

	<!-- 配置sqlsession 产生这个实例就是通过 sqlsessionTemplate来实现的 -->
	<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
		<constructor-arg index="0">
			<ref bean="sqlSessionFactory" />
		</constructor-arg>
	</bean>
  	
  	
  	
  	
  	
</beans>

spring-servlet.xml (springmvc)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd
        ">
	
	
	<!-- 设置扫描包 是spring的功能,context:component-scan默认开启<context:annotation-config/>标签配置-->
    <context:component-scan base-package="dao,model,service,controller"/>
    
    <!-- 开启spring mvc的注解功能 -->
	<mvc:annotation-driven />
	
	<!-- 视图解析器 -->
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<!-- 视图后缀,controller中的方法返回的url字符串会添加该后缀 -->		
		<property name="suffix" value=".jsp"/>
		<!-- 视图前缀controller中的方法返回的url字符串会添加该前缀 -->		
		<property name="prefix" value="/WEB-INF/view/"/> 
	</bean>
	
	
</beans>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
  <display-name>SSMP</display-name>
  
  	<!-- 监听器   ContextLoaderListener是Spring的监听器,它的作用就是启动Web容器时,自动装配ApplicationContext的配置信息。 -->
  	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>

	<!-- 设置Spring容器加载配置文件的路径   这段配置是用于指定applicationContext.xml配置文件的位置-->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>    
         classpath:config/applicationContext.xml    
       </param-value>
	</context-param>
  <!-- 字符编码过滤器 -->
	<filter>
		<filter-name>encodingFilter</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>utf-8</param-value>
		</init-param>
		<init-param>
			<param-name>forceEncoding</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>encodingFilter</filter-name>
		<url-pattern>*.do</url-pattern>
	</filter-mapping>
  
  
  <servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:config/spring-servlet.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
</web-app>

model层 usermapper配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="model.UserMapper">
	<select id="doLogin" parameterType="user" resultType="user">
		select * from tb_users where username=#{username} and password=#{password}
	</select>
</mapper>

dao层要实现:

@Repository         //把dao注入到spring容器
public class UserDao {
	
	@Autowired //按照类型自动注入sqlSession
	private SqlSessionTemplate sqlSession;

	public User doLogin(User user){
		return (User)sqlSession.selectOne("model.UserMapper.doLogin",user);
	}

	
	
}

service层实现接口方法

@Service
public class UserService implements IUserService{
    @Autowired
	private UserDao userdao;
	@Override
	public User doLogin(User user) {
		
		return userdao.doLogin(user);
	}
	public UserDao getUserdao() {
		return userdao;
	}
	public void setUserdao(UserDao userdao) {
		this.userdao = userdao;
	}
    
	
}

最后是controller层,前端页面略

@Controller
@RequestMapping("/user")
public class UserController {
	
	@Autowired  
	private IUserService userService;  //使用的是接口
	
	
	@RequestMapping("dologin.do")
	public ModelAndView doLogin(User user,ModelAndView mv){
		
		User u = userService.doLogin(user);
		
			mv.setViewName("login");
		
		return mv;
	}
	
	
	
}