一些常用的配置文件

jefxff 153,636 2021-04-08

收藏一些常用的配置文件

mybatis 的总配置文件

常用于配置缓存,数据库信息以及需要加载的映射文件

FileName: conf.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>

    <!-- 引人动态文件 -->
    <properties resource="db.properties" />

    <!-- 设置全局参数-->
    <settings>

        <!-- true: 开启二级缓存 false: 关闭二级缓存; 再具体的Mapper.xml 中需要通过<cache/>标签声明-->
        <setting name="cacheEnabled" value="false" />

        <!-- 开启日志, 并指定使用的具体日志 -->
        <setting name="logImpl" value="LOG4J"/>

        <!-- 开启延迟加载 -->
        <setting name="lazyLoadingEnabled" value="true"/>

        <!-- 关闭立即加载 -->
        <!-- 下面的配置没错, 但是运行就报 Error creating lazy proxy.  Cause: java.lang.NullPointerException
             的异常, 看了网上的解决方案是将 MyBatis的jar包更新到3.5.1
             aggressive: 积极的, 好斗的
        -->
        <setting name="aggressiveLazyLoading" value="false"/>

        <!-- 配置全局的NULL, 在遇到数据库(oracle)不能解析时, 就使用NULL -->
        <setting name="jdbcTypeForNull" value="NULL"/>

    </settings>


    <!-- 设置单个/多个别名 Aliases:别名 -->
    <typeAliases>
        <!-- 单个别名
        <typeAlias type="xyz.xmcs.Entity.Student" alias="Student" /> -->

        <!-- 批量设置别名 -->
        <package name="xyz.xmcs.Entity" />
    </typeAliases>


    <!-- 配置类型转换器: JDBC类型和JAVA类型之间的转换
    <typeHandlers> -->
        <!-- 指定转换器的全类名, 并且说明java 和 jdbc 转换的类型
        <typeHandler handler="xyz.xmcs.converter.BooleanAndIntConverter" javaType="Boolean" jdbcType="INTEGER"/>
    </typeHandlers>  -->

    <!-- 配置插件: 在这里配置自定义的插件 -->
    <plugins>
        <!-- PageHelper 分页查询插件 -->
        <plugin interceptor="com.github.pagehelper.PageInterceptor"/>
    </plugins>

    <!-- 该标签中可配置数据库信息, 如连接oracle, mysql 等 -->
    <environments default="devMySQL">

        <!-- MySQL 数据库: 可运行 -->
        <environment id="devMySQL">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <!-- 配置数据库信息; 可以直接在value中写死, 也可以将值以kv对的形式写在properties文件中,
                以类似于EL表法是的方式动态引入(需要先加入 properties标签, 引入properties文件)-->
                <property name="driver" value="${mysql.driver}"/>
                <property name="url" value="${mysql.url}"/>
                <property name="username" value="${mysql.username}"/>
                <property name="password" value="${mysql.password}"/>
            </dataSource>
        </environment>

        <!-- MySQL 数据库: 测试 -->
        <environment id="testMySQL">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <!-- 配置数据库信息; 可以直接在value中写死, 也可以将值以kv对的形式写在properties文件中,
                以类似于EL表法是的方式动态引入(需要先加入 properties标签, 引入properties文件)-->
                <property name="driver" value="${mysqlTest.driver}"/>
                <property name="url" value="${mysqlTest.url}"/>
                <property name="username" value="${mysqlTest.username}"/>
                <property name="password" value="${mysqlTest.password}"/>
            </dataSource>
        </environment>
    </environments>

    <!-- 配置数据库支持类: 大小写必能乱写 -->
    <databaseIdProvider type="DB_VENDOR">
        <property name="MySQL" value="mysql"/>
        <property name="Oracle" value="oracle"/>
        <!--<property name="SQL Server" value=""/>-->
    </databaseIdProvider>

    <mappers>
        <!-- 加载映射文件
        <mapper resource="xyz/xmcs/Entity/personMapper.xml"/>  -->

        <!-- 这种是批量引入mapper; 可以将 xyz.xmcs.mapper包中的注解接口(即接口中的方法上带注解)和xml全部一次性引入-->
        <package name="xyz.xmcs.Mapper"/>

        <!-- 这是使用注解的方式, 并单独引入; 不推荐使用
        <mapper class="xyz.xmcs.Mapper.StudentMapper"/>-->

        <!--
        <mapper resource="xyz/xmcs/Mapper/studentMapper.xml"/>
        <mapper resource="xyz/xmcs/Mapper/studentCardMapper.xml"/>
        <mapper resource="xyz/xmcs/Mapper/studentClassMapper.xml"/> -->

    </mappers>
</configuration>

JavaBean映射文件配置信息

MyBatis 是实现数据库表和JavaBean的映射关系, 这种映射关系就体现就是每一个JavaBeanMapper.xml

FileName: UserMapper.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="xyz.xmcs.dao.UserMapper">

    <resultMap id="UserBaseMap" type="User">
    <id property="user_id" column="user_id"/>
    <result property="username" column="username"/>
    <result property="telephone" column="telephone"/>
    <result property="email" column="email"/>
    <result property="password" column="password"/>
    <result property="is_admin" column="is_admin"/>
</resultMap>

    <!--增加用户-->
    <insert id="addUser" parameterType="User">
        insert into
            user (user_id, username, telephone, email, password, is_admin)
        values (#{user_id},#{username},#{telephone},#{email},#{password},#{is_admin})
    </insert>

    <!--删除用户-->
    <delete id="deleteUserByName" parameterType="String" >
        delete from user where username=#{username}
    </delete>

    <!--修改用户信息-->
    <update id="updateUserByUserId" parameterType="User" >
        update user
            <trim prefix="set" suffixOverrides=",">
                <if test="username != mull and username != ''">
                    username = #{username},
                </if>
                <if test="telephone != null and telephone != ''">
                    telephone = #{telephone},
                </if>
                <if test="email != null and email != ''">
                    email = #{email},
                </if>
                <if test="password != null and password != ''">
                    password = #{password},
                </if>
                <if test="is_admin != null">
                    is_admin = #{is_admin},
                </if>
            </trim>
        where user_id = #{user_id}
    </update>

    <!--以用户名查询用户所有信息-->
    <select id="queryUserByName" parameterType="String" resultMap="UserBaseMap">
        select user_id, username, telephone, email, password, is_admin
        from user
        where username = #{username}
    </select>

    <!--查询全部用户-->
    <select id="queryAllUsers" resultMap="UserBaseMap">
        select user_id, username, telephone, email, password, is_admin
        from user
    </select>

    <!--查询用户数量-->
    <select id="getTotalCount" resultType="int">
        select count(1) from user
    </select>

</mapper>



配置连接数据库的配置文件

通常连接数据库的信息写在db.properties中,使用时通过Properties类直接load加载就可以使用

FileName: db.properties

# mysql 测试数据库
mysqlTest.driver=com.mysql.cj.jdbc.Driver
mysqlTest.url=jdbc:mysql://127.0.0.1:3306/JB?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true&noAccessToProcedureBodies=true
mysqlTest.username=root
mysqlTest.password=root

# MySQL 可运行数据库
mysql.driver=com.mysql.cj.jdbc.Driver
mysql.url=jdbc:mysql://127.0.0.1:3306/servletblog?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true&noAccessToProcedureBodies=true
mysql.username=root
mysql.password=root

# 刘增辉 mybatis 从入门到精通 数据库链接信息
b.driver=com.mysql.cj.jdbc.Driver
b.url=jdbc:mysql://127.0.0.1:3306/mybatis?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true&noAccessToProcedureBodies=true
b.username=root
b.password=root

C3P0数据库连接池配置文件

FileName:c3p0-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<c3p0-config>
    <!-- 默认 -->
    <default-config>
        <!-- 如果要深究某个xml中可以设置那些属性, 就找相关类的属性, 或者setter()方法 -->
        <property name="user">root</property>
        <property name="password">123456</property>
        <property name="driverClass">com.mysql.cj.jdbc.Driver</property>
        <property name="jdbcUrl">jdbc:mysql://127.0.0.1:3306/servletBlog?useSSL=false&amp;serverTimezone=UTC</property>
        <property name="checkoutTimeout">50000</property>
    </default-config>

    <!-- 自定义 -->
    <named-config name="jefxff">
        <property name="user">root</property>
        <property name="password">123456</property>
        <property name="driverClass">com.mysql.cj.jdbc.Driver</property>
        <property name="jdbcUrl">jdbc:mysql://127.0.0.1:3306/servletBlog?useSSL=false&amp;serverTimezone=UTC</property>
        <property name="checkoutTimeout">50000</property>
        <property name="maxPoolSize">8</property>
        <!--初始化时获取三个连接,取值应在minPoolSize与maxPoolSize之间。Default: 3 -->
        <property name="initialPoolSize">2</property>
        <!-- 连接池中保留的最小连接数,默认为:3-->
        <property name="minPoolSize">2</property>
        <!--连接池中保留的最大连接数。默认值: 15 -->
        <property name="maxPoolSize">15</property>
        <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。默认值: 3 -->
        <property name="acquireIncrement">2</property>
        <!--定义在从数据库获取新连接失败后重复尝试的次数。默认值: 30 ;小于等于0表示无限次-->
        <property name="acquireRetryAttempts">0</property>
        <!--每60秒检查所有连接池中的空闲连接。Default: 0 -->
        <property name="idleConnectionTestPeriod">0</property>
        <!--maxStatementsPerConnection定义了连接池内单个连接所拥有的最大缓存statements数。默认值: 0 -->
        <property name="maxStatementsPerConnection">0</property>
        <!--最大空闲时间,指定的时间内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 -->
        <property name="maxIdleTime">30</property>
        <!--c3p0全局的PreparedStatements缓存的大小。如果maxStatements与maxStatementsPerConnection均为0,则缓存不生效,只要有一个不为0,则语句的缓存就能生效。如果默认值: 0-->
        <property name="maxStatements">0</property>
        <property name="unreturnedConnectionTimeout">25</property>

    </named-config>
</c3p0-config>

Log4J 配置文件

第三方日志 log4j

FileName: log4j.properties

### 设置Logger输出级别和输出目的地 ###
log4j.rootLogger=ERROR, Console

#### Console 日志输出到控制台 ####
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
## 带时间的输出形式
# log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
log4j.appender.Console.layout.ConversionPattern=%5p [%t] - %m%n
## MyBatis 日志配置, Resources目录下的Mapper包
log4j.logger.xyz.xmcs.Mapper=TRACE
## MyBatis 编码
log4j.appender.Console.encoding=UTF-8

#### File  日志输出到文件; 需要再 rootLogger 后面增加: , File
#log4j.appender.File = org.apache.log4j.FileAppender
#log4j.appender.File.File = D://File//Java//JAVA_WEB//Log4J_Log
#log4j.appender.File.layout = org.apache.log4j.PatternLayout
#log4j.appender.File.layout.ConversionPattern =%d [%t] %-5p [%c] - %m%n

Tomcat8 web.xml 全配置

FileName: web.xml

<?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">

    <!-- 指定web站台中小图标和大图标的路径 -->
    <icon>
        <small-icon></small-icon>
        <large-icon></large-icon>
    </icon>

    <!-- 标注了该web项目的名字 -->
    <display-name>Test</display-name>

    <!-- 对应用做出描述 -->
    <description>Servlet web.xml v1.0</description>

    <!-- 这里配置的是整个项目的初始化参数; 设定web应用的环境参数(context) -->
    <context-param>
        <!-- 设定Context名称 -->
        <param-name>companyName</param-name>
        <!-- 设定Context名称的值 -->
        <param-value>FM</param-value>
    </context-param>
    <context-param>
        <param-name>authorName</param-name>
        <param-value>jeff</param-value>
    </context-param>

    <!-- 用来设定web应用的过滤器 -->
    <filter>
        <!-- 定义Filter的名称 -->
        <filter-name>Encoding</filter-name>
        <!-- 定义Filter的类名称 -->
        <filter-class>xyz.xmcs.Servlet.MyServletFilter</filter-class>
        <!-- 初始化参数 -->
        <init-param>
            <param-name>encoding</param-name>
            <param-value>GBK</param-value>
        </init-param>
    </filter>

    <!-- 用来和一个或对各Servlet或者JSP页面关联 -->
    <filter-mapping>
        <!-- 定义Filter的名称 -->
        <filter-name>Encoding</filter-name>
        <!-- Filter所对应的RUL -->
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <!-- Listener元素用来定义Listener接口 -->
    <listener>
        <!-- 定义Listener的类名称 -->
        <listener-class>xyz.xmcs.Servlet.MyServletListener</listener-class>
    </listener>

    <!-- 定义了首页文件,也就是用户直接输入域名时跳转的页面(如http://localhost:8080/) -->
    <welcome-file-list>
        <welcome-file>form</welcome-file>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

    <!-- 用来声明一个 Servlet 的数据 -->
    <servlet>
        <!-- 指定 Servlet 的名称 -->
        <servlet-name>MyServlet</servlet-name>
        <!-- 指定 Servlet 的全限定内名称 -->
        <servlet-class>xyz.xmcs.Servlet.MyServlet</servlet-class>


        <!-- 指定web网站中某个JSP网页的完整路径 -->
        <!--<jsp-file>/index.jsp</jsp-file>-->

        <!-- 定义这个Servlet初始化参数,在servlet类中通过ServletConfig对象传入init函数,通过- getInitParamenter(String name)方法访问初始化参数 -->
        <init-param>
            <param-name>DRIVER</param-name>
            <param-value>com.mysql.cj.jdbc.Driver</param-value>
        </init-param>
        <init-param>
            <param-name>URL</param-name>
            <param-value>jdbc:mysql://localhost:3306/myDatabase</param-value>
        </init-param>
        <init-param>
            <param-name>USERNAME</param-name>
            <param-value>root</param-value>
        </init-param>
        <init-param>
            <param-name>PASSWORD</param-name>
            <param-value>root</param-value>
        </init-param>

        <!-- 指定当Web应用启动时,装载Servlet的次序 -->
        <load-on-startup>1</load-on-startup>
    </servlet>

    <!-- 定义servlet所对应的URL -->
    <servlet-mapping>
        <!-- 指定servlet的名称 -->
        <servlet-name>MyServlet</servlet-name>
        <!-- 指定servlet所对应的URL -->
        <url-pattern>/myservlet</url-pattern>
    </servlet-mapping>

    <!-- 定义这个web站台所有session的有效期限.单位为分钟 -->
    <session-config>
        <!-- 有效期限, 单位为秒 -->
        <session-timeout>30</session-timeout>
    </session-config>

    <!-- 定义某一个扩展名和某一MIME Type做对映. -->
    <mime-mapping>
        <!-- 扩展名称 -->
        <extension>doc</extension>
        <!-- MIME格式. -->
        <mime-type>application/vnd.ms-word</mime-type>
    </mime-mapping>

    <!-- 返回特定状态码时或者特定类型的异常被抛出时, 能够指定将要显示的页面 -->
    <error-page>
        <!-- 错误代码 -->
        <error-code>404</error-code>
        <!-- 对应的页面 -->
        <location>/404page.html</location>
    </error-page>
    <error-page>
        <error-code>500</error-code>
        <location>/404page.html</location>
    </error-page>
    <error-page>
        <!-- 错误代码 -->
        <exception-type>java.lang.Exception</exception-type>
        <!-- 对应的页面 -->
        <location>/exception.jsp</location>
    </error-page>

    <!-- 主要用来设定JSP的相关配置 -->
    <jsp-config>
        <!-- 用来设定JSP网页用到的Tag Library路径 -->
        <!--<taglib>-->
            <!-- 定义TLD文件的URI,JSP网页的taglib指令可以经由这个URI存取到TLD文件 -->
            <!--<taglib-uri>Taglib</taglib-uri>-->
            <!-- LD文件对应Web站台的存放位置 -->
            <!--<taglib-location>/WEB-INF/</taglib-location>-->
        <!--</taglib>-->

        <jsp-property-group>
            <!-- 此设定的说明 -->
            <description>
                Special property group for JSP Configuration JSP example.
            </description>
            <!-- 此设定的名称 -->
            <display-name>JSPConfiguration</display-name>
            <!-- 设定值所影响的范围,如:/CH2 或者/*.jsp -->
            <url-pattern>/*</url-pattern>
            <!-- 若为true,表示不支持EL语法. -->
            <el-ignored>true</el-ignored>
            <!-- 设定JSP网页的编码 -->
            <page-encoding>GB2312</page-encoding>
            <!-- 若为true表示不支持<%scription%>语法. -->
            <scripting-invalid>true</scripting-invalid>
        </jsp-property-group>
    </jsp-config>

    <!-- 声明一个与资源相关的一个管理对象 -->
    <resource-env-ref>
        <!-- 资源的名称  -->
        <resource-env-ref-name>jdbc/mssql</resource-env-ref-name>
        <!-- 查找资源时返回的资源类名 -->
        <resource-env-ref-type>javax.sql.DataSource</resource-env-ref-type>
    </resource-env-ref>

    <!-- 声明一个资源工厂使用的外部资源 -->
    <resource-ref>
        <!-- 资源说明 -->
        <description>JNDI JDBC DataSource</description>
        <!-- 资源名称 -->
        <res-ref-name>jdbc/data</res-ref-name>
        <!-- 资源种类 -->
        <res-type>javax.sql.DataSource</res-type>
        <!-- 资源由Application或Container来许可 -->
        <res-auth>Container</res-auth>
    </resource-ref>
</web-app>

# 配置