SSM整合xml方式(精简版)

news2025/1/18 17:57:40

注:本次只介绍ssm整合的核心部分,不重要的部分进行了省略

1、maven核心依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    
    <groupId>com.lagou</groupId>
    <artifactId>visualization</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>
    <dependencies>
        
        <!-- 单元测试 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.1</version>
        </dependency>
        
        <!-- Spring -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.3.22</version>
        </dependency>
        
        
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.0.5.RELEASE</version>
        </dependency>
        
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
            <version>5.0.5.RELEASE</version>
        </dependency>
        
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>5.0.5.RELEASE</version>
        </dependency>
        <!-- Mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.11</version>
        </dependency>
        
        
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>2.0.7</version>
        </dependency>
        
        <!-- MySql -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.31</version>
        </dependency>
        
        <!--日志包-->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>2.0.3</version>
        </dependency>
        
        <!-- 连接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.15</version>
        </dependency>
        
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
            <scope>provided</scope>
        </dependency>
        
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>javax.servlet.jsp-api</artifactId>
            <version>2.3.3</version>
            <scope>provided</scope>
        </dependency>
        
        
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.14.0</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.14.0</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.14.0</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.24</version>
        </dependency>
        
        
        <dependency>
            <groupId>commons-collections</groupId>
            <artifactId>commons-collections</artifactId>
            <version>3.2.2</version>
        </dependency>
        
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.12.0</version>
        </dependency>
        
        
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>5.3.2</version>
        </dependency>
    
    
    
    </dependencies>
    
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.2</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

2、log4j.properties

# Set root category priority to INFO and its only appender to CONSOLE.
#log4j.rootCategory=INFO, CONSOLE            debug   info   warn error fatal
log4j.rootCategory=INFO, CONSOLE, LOGFILE

# Set the enterprise logger category to FATAL and its only appender to CONSOLE.
log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE

# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n

# LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=d:/axis.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n

3、jdbc.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/visualization?useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true&useSSL=false
jdbc.username=root
jdbc.password=root

4、mybatis-config.xml

<?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>
    <!-- 1)驼峰命名 -->
    <settings>
        <!-- model中模型对象userName,和数据库中user_name映射起来 -->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>
    <!-- 2)包扫描别名 -->
    <typeAliases>
        <!-- xxx_mapper.xml文件中,要编写类的完全路径名,如果采用别名方式,以后在映射文件中就不在用写类的完全路径名了 -->
        <package name="com.lagou.model"/>
        <package name="com.lagou.vo"/>
    </typeAliases>
    <!-- 3)分页插件 -->
    <plugins>
        <plugin interceptor="com.github.pagehelper.PageInterceptor">
            <!--   分页参数合理化   -->
            <property name="reasonable" value="true"/>
        </plugin>
    </plugins>
</configuration>

5、applicationContext-dao.xml

<?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: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">
    
    <!-- 1)加载外部数据库信息 jdbc.properties -->
    <context:property-placeholder location="classpath:jdbc.properties"/>
    
    <!-- 2)数据源的配置 druid -->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="${jdbc.driver}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean>
    
    <!-- 3)SqlSessionFactoryBean (加载dataSource , 加载mybatis-config.xml) -->
    <bean id="SqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- 注入连接池 -->
        <property name="dataSource" ref="dataSource"/>
        <!--   加载mybatis-config.xml核心配置文件   -->
        <property name="configLocation" value="classpath:mybatis/mybatis-config.xml"/>
    </bean>
    
    <!-- 4)Mapper包扫描 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!-- 扫描映射文件比如:AccountMapper.xml,并且加载该文件,还会扫描接口文件,并且会为其创建接口代理对象 -->
        <property name="basePackage" value="com.lagou.mapper"/>
    </bean>
</beans>

6、applicationContext-service.xml

<?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:context="http://www.springframework.org/schema/context" 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/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
    
    <!-- 1)包扫描service包 -->
    <context:component-scan base-package="com.lagou.service"/>
    
    <!-- 2)注解的事务 (创建平台事务管理器, 创建注解驱动,挂载平台事务管理器) -->
    <!-- 创建平台事务管理器 -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <!-- 这里datasource爆红是因为它在本文件找不到,但是但是我们在另一个配置文件中配置了的,不用管 -->
        <property name="dataSource" ref="dataSource"/>
    </bean>
    
    <!-- 创建注解驱动 -->
    <tx:annotation-driven transaction-manager="transactionManager"/>
</beans>

7、springmvc.xml

<?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:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:mvvc="http://www.springframework.org/schema/mvc"
       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">
    
    <!-- 扫描controller包  -->
    <context:component-scan base-package="com.lagou.controller"/>
    
    <!-- 配置3大组件
        处理器映射器
        处理器适配器
        视图解析器
     -->
    <mvvc:annotation-driven/>
    
    <!-- 视图解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"/>
</beans>

8、AccountMapper.xml

<?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="com.lagou.mapper.AccountMapper">
    <!--   转入   -->
    <update id="transferIn">
        update account
        set money =money + #{money}
        where username = #{name}
    </update>
    
    <!--   转出   -->
    <update id="transferOut">
        update account
        set money = money - #{money}
        where username = #{name}
    </update>
</mapper>

9、AccountMapper接口 

注意:这个AccountMapper接口AccountMapper.xml配置文件,包名与文件名必须需要保持一样,否则的话mybatis无法实现接口的动态代理。

package com.lagou.mapper;

import org.apache.ibatis.annotations.Param;

public interface AccountMapper {

    // 转入钱
    public void transferIn(@Param("name") String name, @Param("money") double money);

    // 转出钱
    public void transferOut(@Param("name") String name, @Param("money") double money);
}

10、AccountMapperServiceImpl

package com.lagou.service.impl;

import com.lagou.mapper.AccountMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Service
@Transactional // 事务控制
public class AccountServiceImpl {
    @Autowired
    private AccountMapper mapper;

    @Override
    public int transfer(String inName, String outName, double money) {
        try {
            // 调用转入
            mapper.transferIn(inName, money);
            // 调用转出
            mapper.transferOut(outName, money);
            return 0;
        } catch (Exception e) {
            System.out.println(e);
            return 1;
        }

        /*这里只是介绍如何使用分页*/
         // 1、给PageHelper分页助手设置 pageNum pageSize
         //   PageHelper.startPage(pageNum, pageSize);

        // 2、查询所有用户信息
        // List<User> list = userMapper.userList();

        // 3、创建PageInfo对象,把查询到的用户list放到PageInfo中
        // PageInfo<User> pageInfo = new PageInfo<>(list);

    }
}

11、web.xml

<!DOCTYPE web-app PUBLIC
        "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
    <display-name>Archetype Created Web Application</display-name>
    
    <!-- 配置context参数 -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring/applicationContext-*.xml</param-value>
    </context-param>
    
    <!-- 3.处理post中的乱码问题,编写过滤器 -->
    <filter>
        <filter-name>CharacterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <!--   设置编码为utf-8   -->
        <init-param>
            <param-name>CharacterEncodingFilter</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>CharacterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    
    <!-- 1.监听器 加载spring的所有配置文件 -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    
    <!-- 2.前端控制器 加载springmvc.xml
         1)tomcat启动的时候就运行该DispatcherServlet,配置启动加载时机
         2)加载springmvc.xml
    -->
    <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:springmvc/springmvc.xml</param-value>
        </init-param>
        <!-- 配置启动加载时机,值越小,加载越早 -->
        <load-on-startup>2</load-on-startup>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>DispatcherServlet</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>


</web-app>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/93365.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

BEPUphysicsint碰撞事件详解

上一节我们給大家介绍了BEPUphysicsint的基本使用,在游戏开发中我们经常要使用物理引擎的事件&#xff0c;所以本节我们详细的讲解BEPUphysicsint 的物理事件。此物理引擎会产生了碰撞事件与非碰撞事件&#xff0c;碰撞事件大家好理解&#xff0c;非碰撞事件例如: 物理Entity的…

携程季报图解:营收69亿同比增29% 净利为2.45亿

雷递网 雷建平 12月15日携程集团有限公司&#xff08;纳斯达克&#xff1a;TCOM&#xff1b;香港联交所&#xff1a;9961&#xff09;今日发布财报。财报显示&#xff0c;携程2022年第三季度营收为69亿元&#xff0c;同比增长29%&#xff1b;净利润为2.45亿元&#xff1b;经调整…

原生拖拽太拉跨了,纯JS自己手写一个拖拽效果,纵享丝滑

前言 提到元素拖拽&#xff0c;通常都会先想到用 HTML5 的拖拽放置 (Drag 和 Drop) 来实现&#xff0c;它提供了一套完整的事件机制&#xff0c;看起来似乎是首选的解决方案&#xff0c;但实际却不是那么美好&#xff0c;主要是它的样式太过简陋&#xff0c;无法实现更高级的用…

spring boot实现文件上传和下载

文章目录 spring boot实现文件上传 1.文件上传 2.文件下载 1.文件上传 1.代码如下&#xff1a; package com.example.demo; import org.omg.PortableInterceptor.ServerRequestInfo; import org.springframework.stereotype.Controller; import org.springframework.we…

k8s 综合部署练习(针对负载均衡+外网访问web)

部署需求 &#xff08;1&#xff09;Kubernetes 区域可采用 Kubeadm 方式进行安装。 &#xff08;2&#xff09;要求在 Kubernetes 环境中&#xff0c;通过yaml文件的方式&#xff0c;创建Deployment控制器和4个Nginx Pod副本&#xff0c;并进入容器中修改index.html文件内容&…

【12月13日更新半决赛预测】用二元泊松模型预测2022年世界杯淘汰赛结果

用二元泊松模型预测2022年世界杯淘汰赛结果 网上有很多文章用双泊松&#xff08;Double Poisson&#xff09;模型来预测世界杯比赛结果。但是双泊松模型有一个严重的缺陷&#xff0c;那就是它假设比赛中两队的比分是条件独立的。而我们都知道&#xff0c;在对抗性比赛中&…

2022年拼多多元旦节会搞活动吗?拼多多有节日活动吗?

2022年拼多多元旦节会搞活动吗?拼多多有节日活动吗? 离春节只有一个月半的时间了&#xff0c;而且双十二也已经过了。要想等平台的活动&#xff0c;就只有元旦节和年货节了。有小伙伴想知道&#xff0c;拼多多元旦节会搞活动吗? 一、拼多多有节日活动吗? 拼多多购物节主要…

数据服务门槛再提升,这个“TOP1玩家”凭何再度领军?

在人工智能领域&#xff0c;数据的重要程度正在迅速提升。 根据ML大牛吴恩达提出的著名二八定律&#xff1a;80%数据20%模型更好的AI。他认为&#xff0c;一个机器学习团队80%的工作应该放在数据准备上&#xff0c;确保数据质量是最重要的工作&#xff0c;每个人都知道应该如此…

什么是元数据

元数据 元数据是描述数据的数据&#xff0c;关于数据的组织、数据域及其关系&#xff0c;本质上是关于数据的信息。元数据以数字化方式描述企业的数据、流程和应用程序&#xff0c;为企业数字资产的内容提供了上下文&#xff0c;使得数据更容易理解、查找、管理和使用。 元数据…

计算机毕设Python+Vue校园跳蚤平台(程序+LW+部署)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Nginx教程(1)

文章目录1.1 简介1.2 常见的服务器1.3 反向代理1.4 Nginx的安装与运行1.5 Nginx的进程模型1.6 Nginx处理Web请求机制解析1.7 Nginx核心配置文件nginx.conf解析1.8 Nginx常用命令解析1.9 Nginx日志切割1.10 Nginx为静态资源提供服务1.11 使用Gzip压缩提高请求效率1.12 location匹…

React源码分析(二)渲染机制

准备工作 为了方便讲解&#xff0c;假设我们有下面这样一段代码&#xff1a; function App(){const [count, setCount] useState(0)useEffect(() > {setCount(1)}, [])const handleClick () > setCount(count > count)return (<div>勇敢牛牛, <sp…

java计算机毕业设计基于安卓Android的急救服务APP

项目介绍 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代,急救服务系统就是信息时代变革中的产物之一。 任何系统都要遵循系统设…

Android9.0 Fiddler 模拟器抓包

目录 一、生成Fiddler证书并安装 二、制作证书 三、adb的配置 四、安装证书到Android手机 五、抓包 六、总结 一、生成Fiddler证书并安装 1.到官网下载fiddler插件 https://www.telerik.com/fiddler/add-onshttps://www.telerik.com/fiddler/add-ons 2.官网插件工具很多&a…

TCP/IP HTTP WebSocket Socket 路由

最近在写一个上位机&#xff0c;需要将采集到的数据上传到云平台&#xff0c;然后就考虑到使用WebSocket实现&#xff0c;但是WebSocket和Socket有啥区别&#xff0c;这两个东西分别是个啥&#xff0c;咱也不清楚&#xff0c;然后就查资料&#xff0c;发现有好多之前想了解但是…

Java面试基础篇-IO

UNIX提供5种I/O模型 var code “7cfcb088-556d-478a-b21d-12b255236dbd” BIO模型 在进程空间调用recvfrom时被阻塞,直到有数据才返回。 NIO模型 调用recvfrom时先返回EWOULDBLOCK错误&#xff0c;然后轮询是否有数据。 I/O复用 linux提供select/poll&#xff0c;其支…

Minecraft 1.19.2 Forge模组开发 07.拼图建筑(jigsaw)

如果你看过之前的Minecraft 1.19.2建筑生成的话&#xff0c;想必会更好理解这篇教程。 效果演示效果演示效果演示 1.我们本期准备生成的建筑分为4块&#xff0c;所以首先需要用4个结构方块将整个建筑包括起来&#xff1a; 2.之后我们需要用指令拿出拼图方块: give p minecraf…

数据结构与算法——Java实现递归、迷宫回溯问题、八皇后问题

目录 一、递归 1.1 介绍递归 二、迷宫回溯问题 2.1 代码实现 三、八皇后问题 3.1 基本介绍 3.2 分析思路 3.3 代码实现 一、递归 1.1 介绍递归 简单的说&#xff1a;递归就是方法自己调用自己&#xff0c;每次传入不同的变量。 递归有助于编程者解决复杂的问题&#x…

Efficient Zero-shot Event Extraction with Context-Definition Alignment论文解读

Efficient Zero-shot Event Extraction with Context-Definition Alignment code&#xff1a;tencent-ailab/ZED: This is the repository for EMNLP 2022 paper “Efficient Zero-shot Event Extraction with Context-Definition Alignment” (github.com) paper&#xff1a;…

【手把手】分布式定时任务调度解析之Elastic-Job

1、这货怎么没怎么听过 经常使用Quartz或者Spring Task的小伙伴们&#xff0c;或多或少都会遇到几个痛点&#xff0c;比如&#xff1a; 1、不敢轻易跟着应用服务多节点部署&#xff0c;可能会重复多次执行而引发系统逻辑的错误&#xff1b; 2、Quartz的集群仅仅只是用来HA&…