zoukankan      html  css  js  c++  java
  • SSM框架开发案例——铁大树洞后台管理系统

    写在前面

    在学习完了SSM框架后,想着写个案例来巩固一下,正好之前自己写的APP需要一个后台管理系统,于是就写了一个练练手。
    github地址:https://github.com/wushenjiang/TDTreeHoleWeb

    效果截图


    配置SSM框架

    要做SSM,首先要配置SSM框架的环境。详细请见上一篇博客:https://www.cnblogs.com/wushenjiang/p/12828812.html
    这里我再做进一步的解耦,将数据库配置和mybatis配置都独立出来,如下:

        <!-- 加载数据库连接池配置文件 -->
        <context:property-placeholder location="classpath:db.properties"/>
        <!-- 配置连接池-->
        <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
            <property name="driverClass" value="${jdbc.driver}"/>
            <property name="jdbcUrl" value="${jdbc.url}"/>
            <property name="user" value="${jdbc.user}"/>
            <property name="password" value="${jdbc.password}"/>
            <property name="maxIdleTime" value="${jdbc.maxIdleTime}"/>
        </bean>
        <!-- 配置SqlSessionFactory-->
        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
            <property name="dataSource" ref="dataSource"/>
            <!-- 加载mybatis的全局配置文件-->
            <property name="configLocation" value="classpath:sqlMapConfig.xml"/>
        </bean>
    

    数据库配置文件就不上了,这里发一下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>
        <mappers>
            <!-- xml配置文件必须和类在同一级package下,且同名 -->
            <package name="com.liuge.dao"/>
        </mappers>
    </configuration>
    

    主要是在这里设置了对应的包,要求我们的映射文件要和类在同一级package下。

    模块分工和思路

    主要有三大模块:用户模块,发帖模块,回帖模块。依次讲解各个模块:
    用户模块细分为查看用户和用户详情(可以查看用户发帖和回帖),具体实现思路很简单,就是把以前用servlet的东西都交给SpringMVC去做,设置一个方法和对应的注解即可。service和dao都交给Spring来管理。
    发帖模块细分为查看所有帖子和帖子详情(可以看帖子下有什么回复)。
    回帖模块只有查看所有回帖。

    踩坑记录

    • 1.首先就是Mybatis的设置了。一直设置不好映射文件和接口的自动映射,后来发现maven工程默认不会扫描除resources下的xml,我们要在pom.xml手动设置一下:
        <!-- maven默认不编译xml配置文件,需要手动指定-->
        <resources>
          <resource>
            <directory>src/main/java</directory>
            <includes>
              <include>**/*.properties</include>
              <include>**/*.xml</include>
            </includes>
            <!-- 是否替换资源中的属性 -->
            <filtering>false</filtering>
          </resource>
        </resources>
    
    • 2.再来就是sql注入问题。由于要写一个模糊查询,如果用字符串拼接必然会导致sql注入问题。这里用了mysql的自带函数concat,连接字符串的函数。sql语句如下示例:
    select * from post where title like concat('%',#{title},'%');
    

    总结

    经过这次开发,可以体会到SSM框架带来的诸多好处。就是初期的配置略繁琐,但配置好后写代码的速度和运行效率都大大提高了。以后会做更多的开发的

  • 相关阅读:
    Netty章节二十三:Netty自定义实现粘包与粘包
    Netty章节二十二:Netty自定义编解码器
    Netty章节二十一:Netty的ByteBuf
    Netty章节二十:Netty中的理论与实践
    Netty章节十八:Netty Server Start 源码分析
    Netty章节十七:Zero-copy,零拷贝
    Netty章节十六:Java NIO
    Netty章节十五:Nodejs使用gRPC与Java进行远程通信
    UML类图
    Java中虚函数和纯虚函数
  • 原文地址:https://www.cnblogs.com/wushenjiang/p/12838202.html
Copyright © 2011-2022 走看看