ssm 整合(配置文件,简单测试)

Posted ppvir

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ssm 整合(配置文件,简单测试)相关的知识,希望对你有一定的参考价值。

SSM配置文件

Spring配置文件:applicationContext.xml

1.ioc组件扫描,扫描service
2.加载properties文件
3.配置数据源信息
4.配置sqlSessionFactory工厂
5.扫描mapper所在的包,为mapper创建实现类
6.声明式事务控制

  • 平台事务管理器
  • 配置事务增强
  • 事务的aop织入
<?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"
       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/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
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">

    <!--ioc组件扫描 扫描service-->
    <context:component-scan base-package="service业务层包名"></context:component-scan>

    <!--加载propeties文件-->
    <context:property-placeholder location="classpath:jdbc.properties">         </context:property-placeholder>

    <!--配置数据源信息-->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="$jdbc.driver"></property>
        <property name="jdbcUrl" value="$jdbc.url"></property>
        <property name="user" value="$jdbc.username"></property>
        <property name="password" value="$jdbc.password"></property>
    </bean>

<!--配置sqlsessionFactory工厂-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
       <property name="dataSource" ref="dataSource"></property>
       <!--定义别名-->
       <property name="typeAliasesPackage" value="实体类包"></property>
    <!--加载mybatis核心文件-->
    </bean>
<!--扫描mapper所在的包 为mapper创建实现类-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="mapper接口的包"></property>
    </bean>

<!--声明式事务控制-->
<!--平台事务管理器-->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"></property>
    </bean>

    <tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>

<!--配置事务增强-->
    <tx:advice id="txAdvice">
        <tx:attributes>
            <tx:method name="*"/>
        </tx:attributes>
    </tx:advice>

<!--事务的aop织入-->
    <aop:config>
        <aop:advisor advice-ref="txAdvice" pointcut="execution(* cn.ppvir.service.impl.*.*(..))"></aop:advisor>
    </aop:config>

</beans>

SpringMVC配置文件:spring-mvc.xml

1.组件扫描
2.配置mvc注解驱动
3.内部资源视图解析器
4.开发静态资源访问权限

<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!--组件扫描 只扫描controller-->
<context:component-scan base-package="controller层包"></context:component-scan>
<!--配置mvc注解驱动-->
<mvc-annotation-driven></mvc-annotation-driven>
<!--内部资源视图解析器-->
<bean id="resourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/pages/"/>
    <property name="suffix" value=".jsp"/>
</bean>
<!--开放静态资源访问权限-->
<mvc:default-servlet-handler></mvc:defaule-servlet-handler>
</beans>

mybatis核心配置文件SSM整合:sqlMapConfig-spring.xml

在spring配置文件中配置后可以省略。
<configuration>
    <!--定义别名-->
    <typeAliases>
        <package name="domain实体类包">
    </typeAliases>
</configuration>

web.xml

1.spring 监听器
2.springMVC的前端控制器
3.乱码过滤器

<!--spring监听器-->
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!--springMVC的前端控制器dispatcherServlert本质是servlet-->
<servlet>
    <servlet-name>DispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring-mvc.xml</param-value>
    </init-param>
    <!--启动加载-->
    <load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>DispatcherServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>
<!--乱码过滤器-->
<filter>
        <filter-name>CharacterEncodingFilter</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>
    </filter>
    <filter-mapping>
        <filter-name>CharacterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

数据源配置文件: jdbc.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssm
jdbc.username=root
jdbc.password=root

日志打印文件: log4j.properties

#
# Hibernate, Relational Persistence for Idiomatic Java
#
# License: GNU Lesser General Public License (LGPL), version 2.1 or later.
# See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
#

### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.err
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%dABSOLUTE %5p %c1:%L - %m%n

### direct messages to file hibernate.log ###
#log4j.appender.file=org.apache.log4j.FileAppender
#log4j.appender.file.File=hibernate.log
#log4j.appender.file.layout=org.apache.log4j.PatternLayout
#log4j.appender.file.layout.ConversionPattern=%dABSOLUTE %5p %c1:%L - %m%n

### set log levels - for more verbose logging change 'info' to 'debug' ###

log4j.rootLogger=debug, stdout

dao层 UserMapper proxy

//mybatis注解
public interface UserMapper 

    @Insert("insert into user(username,password)values(#username,#password)")
    void save(User user);

    @Select("select * from user")
    List<User> findAll();

service层

public interface IUserService 
    void save(User user);

    List<User> findAll();


@Service("userService")
@Transactional
public class UserServiceImpl implements IUserService 
    @Autowired
    private UserMapper userMapper;


    @Override
    public void save(User user) 
        userMapper.save(user);
    

    @Override
    public List<User> findAll() 
        List<User> userList = userMapper.findAll();
        return userList;
    

PoJO

public class User 
    private Integer id;
    private String username;
    private String email;
    private String password;
    private long phoneNum;

controller

@Controller
@RequestMapping("/user")
public class UserController 
    @Autowired
    private IUserService userService;
    //查询所有用户
    @RequestMapping(value = "/findAll")
    public ModelAndView findAll()
        List<User> userList = userService.findAll();
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("userList",userList);
        modelAndView.setViewName("userList");
        return modelAndView;
    
    //添加用户
    @RequestMapping(value = "/save",produces = "text/html;charset=UTF-8")
    @ResponseBody
    public String save(User user)
        userService.save(user);
        return "userList";
    

前端页面

<!--提交表单页面-->
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <h1>添加用户信息</h1>
    <form name="userForm" action="$pageContext.request.contextPath/user/save" method="post">
        用户名:<input name="username" type="text"><br/>
        密码:<input name="password" type="password"><br/>
        <input type="submit" value="保存">
    </form>

</body>
</html>


<!--查询用户页面-->
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <h1>用户列表</h1>
    <table border="1px">
        <tr>
            <th>用户id</th>
            <th>用户名</th>
            <th>密码</th>
        </tr>
    <c:forEach items="$userList" var="user">
        <tr>
            <td>$user.id</td>
            <td>$user.username</td>
            <td>$user.password</td>
        </tr>
    </c:forEach>
    </table>
</body>
</html>

mybatis核心配置文件:sqlMapConfig.xml

1.加载jdbc.properties配置文件
2.定义别名 package domain包名
3.配置数据源环境 environment
4.加载映射mappers package name=”映射接口所在包“

<configuration>

    <!--加载properties文件-->
    <properties resource="jdbc.properties"></properties>

    <!--定义别名-->
    <typeAliases>
        <!--<typeAlias type="com.itheima.domain.Account" alias="account"></typeAlias>-->
        <package name="com.itheima.domain"></package>
    </typeAliases>

    <!--环境-->
    <environments default="developement">
        <environment id="developement">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="$jdbc.driver"></property>
                <property name="url" value="$jdbc.url"></property>
                <property name="username" value="$jdbc.username"></property>
                <property name="password" value="$jdbc.password"></property>
            </dataSource>
        </environment>
    </environments>

    <!--加载映射mapper-->
    <mappers>
        <package name="mapper接口包"></package>
    </mappers>
</configuration>

mybatis映射配置文件: UserMapper.xml

<mapper namespace="mapper接口的全类名">
    增删改语句
</mapper>

以上是关于ssm 整合(配置文件,简单测试)的主要内容,如果未能解决你的问题,请参考以下文章

ssm整合——Spring配置

SSM 整合配置以及一个简单登陆案例(个人记录)

SSM-整合简单配置

ssm整合——Mybatis配置

SSM整合(配置文件版)

SSM整合配置文件详解