SSM的相关配置文件简介

目录

1.SSM是什么?

2.搭建SSM所需的基本配置文件有哪些?

3.其他的辅助配置文件:MyBatis逆向工程

4.配置文件的读取关系图


1.SSM是什么?

SSM是三个主流技术框架的缩写,分别为Spring、S大型的pringMVC以及MyBatis,三者的协调运用成为了目前主流的Java EE框架,适用于搭建各种大型的企业级应用系统。

2.搭建SSM所需的基本配置文件有哪些?

(1)Spring下的配置文件:Spring-Config.xml   属于全局配置文件(配置文件名是自定义,作为Spring的核心配置文件,里面包括了:1-用Spring的数据源替换MyBatis的数据源,并且绑定mybatis配置文件以及注册mapper.xml映射器,即Spring整合MyBatis。2-注入sqlSessionFactory 基本代码如下:

<?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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">


    <!--    DataSource:使用Spring的数据源替换mybatis的配置-->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">

        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/test?useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
        <property name="username" value="root"/>
        <property name="password" value="abc15976582078"/>
    </bean>

    <!--sqlSessionFactory-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <!--绑定mybatis配置文件-->
        <property name="configLocation" value="classpath:config.xml"/>
        <!--注册Mapper.xml映射器-->
        <property name="mapperLocations" value="classpath:com/zhan/Dao/*.xml"/>
    </bean>

    <!--     sqlSessionTemplate:就是我们使用的sqlSession-->
    <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
        <!--        只能使用构造器注入sqlSessionFactory,因为它没有set方法-->
        <constructor-arg index="0" ref="sqlSessionFactory"/>
    </bean>

<!--    &lt;!&ndash;扫描自定义的Mapper接口&ndash;&gt;-->
<!--    <bean id="UserDao" class="com.zhan.Dao.UserDaoImpl">-->
<!--        <property name="sqlSession" ref="sqlSession"/>-->
<!--    </bean>-->

    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
        <property name="basePackage" value="com.zhan.Dao"/>
    </bean>

</beans>

注意:这里的包扫描基于自己项目的目录结构进行扫描。

(2)MyBatis配置文件:config.xml

其实在用Spring整合了MyBatis后,其工作大部分已经被取代了(例如数据源的配置),里面的配置内容基本上可以说是空壳,但为了保留SSM的完整痕迹,还是需要将其保留下来,被Spring-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>
    <!--    <environments default="development">-->
    <!--        <environment id="development">-->
    <!--            <transactionManager type="JDBC"></transactionManager>-->
    <!--            <dataSource type="POOLED">-->
    <!--                <property name="driver" value="com.mysql.jdbc.Driver"/>-->
    <!--                <property name="url" value="jdbc:mysql://localhost:3306/test?useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>-->
    <!--                <property name="username" value="root"/>-->
    <!--                <property name="password" value="abc15976582078"/>-->
    <!--            </dataSource>-->
    <!--        </environment>-->
    <!--    </environments>-->

    <!--    <mappers>-->
    <!--        <mapper resource="UserMapper.xml"/>-->
    <!--    </mappers>-->

</configuration>

(3)Springmvc核心配置文件:springmvc.xml

这也是必不可少的一环。作用包括扫描并管理控制器Controller中的各种bean对象、配置视图解析器等,它是被web.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"
       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
        ">

    <!-- SpringMVC配置文件:控制器的bean对象在这被扫描 -->
    <context:component-scan base-package="com.zhan"/>

    <!--    启动mvc的注解驱动-->
    <mvc:annotation-driven/>
    <!--    配置视图解析器的配置-->                     <!--    调用视图解析器的方法:InternalResourceViewResolver-->
    <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!-- 前缀 -->
        <property name="prefix" value="/"/><!--默认访问路径是webapp根路径下的,如果webapp下还有其他文件夹就写:/webapp/文件夹名-->
        <!-- 后缀 -->
        <property name="suffix" value=".jsp"/><!-- 如果是index.html文件,就写html -->
    </bean>
</beans>

(4)web-app目录下的核心配置文件:web.xml

最核心的部分之一,其它配置文件像spring-config.xml以及springmvc.xml都将被它读取,同时它也是被tomcat以及其他类型服务器率先读取并打包部署的必备读取文件。除此之外,还包括配置字符过滤器、拦截器和静态资源的加载等等。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
  <!--  字符编码过滤器-->
  <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>

  <!--    Spring配置-->

  <!--        1、让监听器知道spring的配置文件的位置-->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <!-- spring配置文件的文件名 -->
    <param-value>classpath:spring.xml</param-value>
  </context-param>
  <!--        2.创建监听器-->
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>

  <!--        springmvc的 核心\前端\中央 控制器-->

  <!--        servlet的封装-->
  <servlet>
    <servlet-name>dispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!--            servlet读取springmvc的配置文件-->
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <!-- springmvc配置文件的文件名 -->
      <param-value>classpath:springmvc.xml</param-value>
    </init-param>
    <!--            在容器创建servlet对象的优先级.    数字越小越先创建-->
    <load-on-startup>1</load-on-startup>
  </servlet>


  <servlet-mapping>
    <servlet-name>dispatcherServlet</servlet-name>
    <!--            设置访问路径后必须加.do才能进行访问-->
    <url-pattern>/</url-pattern>
  </servlet-mapping>


<!--  加载静态资源-->
       <servlet-mapping>
         <servlet-name>default</servlet-name>
         <url-pattern>*.js</url-pattern>
       </servlet-mapping>
  
       <servlet-mapping>
         <servlet-name>default</servlet-name>
         <url-pattern>*.css</url-pattern>
       </servlet-mapping>
  
       <servlet-mapping>
         <servlet-name>default</servlet-name>
         <url-pattern>*.jpg</url-pattern>
       </servlet-mapping>
</web-app>

(5)MyBatis下的映射文件配置:Mapper.xml

该配置文件是用于编写sql语句的地方,便于pojo与SQL间的映射关系,常见的基本操作包括增删改查等等,一般是在Dao设置了映射接口后,具体的业务实现(sql语句)在mapper.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">
<!--namespace=绑定一个对应的Dao/Mapper接口-->
<mapper namespace="com.zhan.Dao.UserDao">
    <!--    添加查询-->
    <insert id="addUser">
        insert into test.product(pid,pname,price,category_id) values (#{pid},#{pname},#{price},#{category_id})
    </insert>
    <!--    更新查询-->
    <update id="adaptUser">
        update test.product set pname=#{pname},price=#{price},category_id=#{category_id} where pid=#{pid} ;
    </update>
    <!--    删除查询-->
    <delete id="deleteUser">
        delete from test.product where pid=#{pid}
    </delete>
    <!--查询全部语句 -->
    <select id="getList" resultType="com.zhan.pojo.User">
        select * from test.product
    </select>
    <!--    根据id查询-->
    <select id="getById" resultType="com.zhan.pojo.User">
        select *from test.product where pid=#{pid}
    </select>
</mapper>

注意:这里的数据库表是基于我自己的,不同的数据库表需要有对应的pojo类进行映射。

3.其他的辅助配置文件:MyBatis逆向工程

我们知道,MyBatis是属于半自动(ORM)的持久化框架,一个数据库表对应一个pojo类,同时对应着一个相映射的mapper.xml文件。这使得我们需要花部分时间在pojo类的编写和mapper.xml的繁琐编写上。而逆向工程就是通过数据库表来自动帮我妈构建相应的pojo类和mapper.xml的,让我们能更加集中在业务代码的编写上。可以说,MyBatis逆向工程是一种“懒人的必备配置”。

mybaits-generation.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

<generatorConfiguration>
    <context id="testTables" targetRuntime="MyBatis3">
        <commentGenerator>
            <!-- 是否去除自动生成的注释 true:是 : false:否 -->
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
        <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/test?useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8"
                        userId="root"
                        password="abc15976582078">
        </jdbcConnection>
        <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
            NUMERIC 类型解析为java.math.BigDecimal -->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>

        <!-- targetProject:生成PO类的位置 我写的是entity实体类-->
        <javaModelGenerator targetPackage="com.bjpowernode.crm.settings.pojo"
                            targetProject="src/main/java">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false"/>
            <!-- 从数据库返回的值被清理前后的空格 -->
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        <!-- targetProject:mapper映射文件生成的位置 -->
        <sqlMapGenerator  targetPackage="mapper" targetProject="./src/main/resources">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false"/>
        </sqlMapGenerator>
        <!-- targetPackage:mapper接口生成的位置 -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="com.bjpowernode.crm.settings.mapper"
                             targetProject="src/main/java">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false"/>
        </javaClientGenerator>
        <!-- 指定数据库表 -->
        <table schema="crmdb" tableName="tbl_user"></table>
<!--        <table schema="crm" tableName="product_info"></table>-->
<!--        <table schema="" tableName="product_type"></table>-->
    </context>
</generatorConfiguration>

通过上述代码可以看到,逆向工程配置文件大体上包括数据库连接、指定数据库表、指定pojo类和mapper.xml的生成位置。

4.配置文件的读取关系图

为了更直观地看清各配置文件的读取与被读取关系,用一幅图来显示说明:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蜗牛变涡流

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值