zoukankan      html  css  js  c++  java
  • SpringDemo01

    代码:

    jdbc.properties

    driver=com.mysql.jdbc.Driver
    url=jdbc:mysql://localhost/library
    username=root
    password=logan123
    #u5B9Au4E49u521Du59CBu8FDEu63A5u6570  
    initialSize=0  
    #u5B9Au4E49u6700u5927u8FDEu63A5u6570  
    maxActive=20  
    #u5B9Au4E49u6700u5927u7A7Au95F2  
    maxIdle=20  
    #u5B9Au4E49u6700u5C0Fu7A7Au95F2  
    minIdle=1  
    #u5B9Au4E49u6700u957Fu7B49u5F85u65F6u95F4
    maxWait=60000

    log4j.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">
    <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
    
    <!-- Appenders -->
    <!-- ======================自定义输出格式说明==================================== -->
    <!-- %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL -->
    <!-- %r 输出自应用启动到输出该log信息耗费的毫秒数 -->
    <!-- %c 输出所属的类目,通常就是所在类的全名 -->
    <!-- %t 输出产生该日志的线程名 -->
    <!-- %n 输出一个回车换行符,windows为"/r/n",Unix平台为"/n" -->
    <!-- %d 输出日志时间点的日期或者时间,默认格式为ISO8601,也可以在其后指定格式,比如%d{yyy MMM dd HH:mm:ss,SSS} -->
    <!-- 输出时间类似于2003年10月18日 22:10:28,921 -->
    <!-- %l 输出日志时间的发生位置,包括类目名,发生的线程,以及在代码中的行数。举例:Testlog4.min(TestLog4.java:10) -->
    
    <!-- =====================输出方式说明============================================ -->
    <!-- Log4j提供的appender有以下几种: -->
    <!-- org.apache.log4j.ConsoleAppender(控制台) -->
    <!-- org.apache.log4j.FileAppender(文件) -->
    <!-- org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件) -->
    <!-- org.apache.log4j.RollingFileAppender(文件大小到达指定的尺寸的时候产生一个新的文件) -->
    <!-- org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方) -->
    <!-- 1.一个appender子元素定义一个日志输出目的地 -->
    <!-- <appender name="console" class="org.apache.log4j.ConsoleAppender">
    <param name="Target" value="System.out" />
    <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="%-5p: %c - %m%n" />
    </layout>
    </appender> -->
    
    <appender name="console" class="org.apache.log4j.ConsoleAppender">
    <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss}] %-5p: %c - %m%n"/>
    </layout>
    </appender>
    <appender name="LOGDEBUG" class="org.apache.log4j.DailyRollingFileAppender">
    <!-- Threshold屏蔽级别之下的日志输出 -->
    <param name="Threshold" value="DEBUG"/>
    <param name="encoding" value="UTF-8"/>
    <param name="File" value="c:/SchoolLog/SchoolLog_"/>
    <param name="DatePattern" value="'debug_'yyyy-MM-dd'.log'"/>
    <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss}] %-5p: %c - %m%n"/>
    </layout>
    </appender>
    <!-- Application Loggers -->
    <!-- 2.一个logger子元素定义一个日志写出器 -->
    <logger name="com.huawei.qa">
    <level value="info" />
    </logger>
    
    <!-- 3rdparty Loggers -->
    <logger name="org.springframework.core">
    <level value="info" />
    </logger>
    
    <logger name="org.springframework.beans">
    <level value="info" />
    </logger>
    
    <logger name="org.springframework.context">
    <level value="info" />
    </logger>
    
    <logger name="org.springframework.web">
    <level value="info" />
    </logger>
    
    <!-- Root Logger -->
    <root>
    <priority value="warn" />
    <appender-ref ref="console" />
    <appender-ref ref="LOGDEBUG" />
    </root>
    
    </log4j:configuration>

    spring-mvc.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:p="http://www.springframework.org/schema/p"
        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-3.1.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.1.xsd
    http://www.springframework.org/schema/mvc
    http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
        <!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器 -->
        <context:component-scan
            base-package="com.logan.controller" />
    
        <!--避免IE执行AJAX时,返回JSON出现下载文件 -->
        <bean id="mappingJacksonHttpMessageConverter"
            class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
            <property name="supportedMediaTypes">
                <list>
                    <value>text/html;charset=UTF-8</value>
                </list>
            </property>
        </bean>
        <!-- 启动SpringMVC的注解功能,完成请求和注解POJO的映射 -->
        <bean
            class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
            <property name="messageConverters">
                <list>
                    <ref bean="mappingJacksonHttpMessageConverter" /> <!-- JSON转换器 -->
                </list>
            </property>
        </bean>
        <!-- 定义跳转的文件的前后缀 ,视图模式配置 -->
        <bean id="viewResolverJsp"
            class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <!-- 这里的配置我的理解是自动给后面action的方法return的字符串加上前缀和后缀,变成一个 可用的url地址 -->
            <property name="prefix" value="/WEB-INF/jsp/" />
            <property name="suffix" value=".jsp" />
            <property name="order" value="1" />
        </bean>
    
        <!-- 配置文件上传,如果没有使用文件上传可以不用配置,当然如果不配,那么配置文件中也不必引入上传组件包 -->
        <bean id="multipartResolver"
            class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
            <!-- 默认编码 -->
            <property name="defaultEncoding" value="utf-8" />
            <!-- 文件大小最大值 -->
            <property name="maxUploadSize" value="10485760000" />
            <!-- 内存中的最大值 -->
            <property name="maxInMemorySize" value="40960" />
        </bean>
    
        <!-- 配置freeMarker视图解析器 -->
        <bean id="viewResolverFtl"
            class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
            <property name="viewClass"
                value="org.springframework.web.servlet.view.freemarker.FreeMarkerView" />
            <property name="contentType" value="text/html; charset=UTF-8" />
            <property name="exposeRequestAttributes" value="true" />
            <property name="exposeSessionAttributes" value="true" />
            <property name="exposeSpringMacroHelpers" value="true" />
            <property name="cache" value="true" />
            <property name="suffix" value=".ftl" />
            <property name="order" value="0" />
        </bean>
    
        <bean id="freeMarkerConfigurer"
            class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
            <!-- ftl模版文件路径 -->
            <property name="templateLoaderPath" value="/WEB-INF/view/"></property>
            <!-- 页面编码 -->
            <property name="defaultEncoding" value="utf-8" />
            <property name="freemarkerSettings">
                <props>
                    <!-- 模版缓存刷新时间,不写单位默认为秒 -->
                    <prop key="template_update_delay">0</prop>
                    <!-- 时区 和 时间格式化 -->
                    <prop key="locale">zh_CN</prop>
                    <prop key="datetime_format">yyyy-MM-dd</prop>
                    <prop key="date_format">yyyy-MM-dd</prop>
                    <!-- 数字使用.来分隔 -->
                    <prop key="number_format">#.##</prop>
                </props>
            </property>
        </bean>
        <!-- 注册freemarker视图解析器 -->
        <bean id="freeMarkerViewResolver"
            class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
            <!-- 视图解析顺序,排在其他视图解析器之后 数字越大优先级越低 -->
            <property name="order" value="2" />
            <!-- 开启模版缓存 -->
            <property name="cache" value="true" />
            <!-- 上面已经配了,这里就不用配啦 -->
            <property name="prefix" value="" />
            <!-- 配置文件后缀 -->
            <property name="suffix" value=".ftl" />
            <property name="contentType" value="text/html;charset=UTF-8" />
            <!-- 是否允许session属性覆盖模型数据,默认false -->
            <property name="allowSessionOverride" value="false" />
            <!-- 是否允许request属性覆盖模型数据,默认false -->
            <property name="allowRequestOverride" value="false" />
            <!-- 开启spring提供的宏帮助(macro) -->
            <property name="exposeSpringMacroHelpers" value="true" />
            <!-- 添加request attributes属性到ModelAndView中 -->
            <property name="exposeRequestAttributes" value="true" />
            <!-- 添加session attributes属性到ModelAndView中 -->
            <property name="exposeSessionAttributes" value="true" />
        </bean>
    
    </beans>

    spring-mybatis.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:p="http://www.springframework.org/schema/p"
        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-3.1.xsd    
                                http://www.springframework.org/schema/context    
                                http://www.springframework.org/schema/context/spring-context-3.1.xsd    
                                http://www.springframework.org/schema/mvc    
                                http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
        <!-- 自动扫描 -->
        <context:component-scan base-package="com.logan" />
        <!-- 引入配置文件 -->
        <bean id="propertyConfigurer"
            class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
            <property name="location" value="classpath:jdbc.properties" />
        </bean>
        
        <!-- 数据库连接池 -->
        <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
            destroy-method="close">
            <property name="driverClassName" value="${driver}" />
            <property name="url" value="${url}" />
            <property name="username" value="${username}" />
            <property name="password" value="${password}" />
            <!-- 初始化连接大小 -->
            <property name="initialSize" value="${initialSize}"></property>
            <!-- 连接池最大数量 -->
            <property name="maxActive" value="${maxActive}"></property>
            <!-- 连接池最大空闲 -->
            <property name="maxIdle" value="${maxIdle}"></property>
            <!-- 连接池最小空闲 -->
            <property name="minIdle" value="${minIdle}"></property>
            <!-- 获取连接最大等待时间 -->
            <property name="maxWait" value="${maxWait}"></property>
        </bean>
    
        <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->
        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
            <property name="dataSource" ref="dataSource" />
            <!-- 自动扫描mapping.xml文件 -->
            <property name="mapperLocations" value="classpath:com/logan/mapping/*.xml"></property>
        </bean>
    
        <!-- DAO接口所在包名,Spring会自动查找其下的类 -->
        <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <property name="basePackage" value="com.logan.dao" />
            <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
        </bean>
    
        <!-- (事务管理)transaction manager, use JtaTransactionManager for global tx -->
        <bean id="transactionManager"
            class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="dataSource" />
        </bean>
    </beans>

    pom.xml

    <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/maven-v4_0_0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>Logan</groupId>
        <artifactId>SpringDemo01</artifactId>
        <packaging>war</packaging>
        <version>0.0.1-SNAPSHOT</version>
        <name>SpringDemo01 Maven Webapp</name>
        <url>http://maven.apache.org</url>
    
        <properties>
            <!-- spring版本号 -->
            <spring.version>5.2.5.RELEASE</spring.version>
            <!-- mybatis版本号 -->
            <mybatis.version>3.2.6</mybatis.version>
            <!-- log4j日志文件管理包版本 -->
            <slf4j.version>1.7.7</slf4j.version>
            <log4j.version>1.2.17</log4j.version>
        </properties>
        <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>3.8.1</version>
                <scope>test</scope>
            </dependency>
    
            <!-- spring核心包 -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
                <version>${spring.version}</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-web</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-oxm</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-tx</artifactId>
                <version>${spring.version}</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-jdbc</artifactId>
                <version>${spring.version}</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-aop</artifactId>
                <version>${spring.version}</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context-support</artifactId>
                <version>${spring.version}</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-test</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <!-- mybatis核心包 -->
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
                <version>${mybatis.version}</version>
            </dependency>
            <!-- mybatis/spring包 -->
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis-spring</artifactId>
                <version>1.2.2</version>
            </dependency>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.30</version>
            </dependency>
            <!-- 导入dbcp的jar包,用来在applicationContext.xml中配置数据库 -->
            <dependency>
                <groupId>commons-dbcp</groupId>
                <artifactId>commons-dbcp</artifactId>
                <version>1.2.2</version>
            </dependency>
            <!-- JSTL标签类 -->
            <dependency>
                <groupId>jstl</groupId>
                <artifactId>jstl</artifactId>
                <version>1.2</version>
            </dependency>
            <!-- 日志文件管理包 -->
            <!-- log start -->
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>${log4j.version}</version>
            </dependency>
    
    
            <!-- 格式化对象,方便输出日志 -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>1.1.41</version>
            </dependency>
    
    
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
    
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <!-- log end -->
            <!-- 映入JSON -->
            <dependency>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-mapper-asl</artifactId>
                <version>1.9.13</version>
            </dependency>
            <!-- 上传组件包 -->
            <dependency>
                <groupId>commons-fileupload</groupId>
                <artifactId>commons-fileupload</artifactId>
                <version>1.3.1</version>
            </dependency>
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>2.4</version>
            </dependency>
            <dependency>
                <groupId>commons-codec</groupId>
                <artifactId>commons-codec</artifactId>
                <version>1.9</version>
            </dependency>
    
            <!-- freemarker Template jar -->
            <dependency>
                <groupId>org.freemarker</groupId>
                <artifactId>freemarker</artifactId>
                <version>2.3.28</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>2.10.0</version>
            </dependency>
    
            <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
                <version>2.10.0</version>
            </dependency>
    
    
        </dependencies>
        <build>
            <finalName>SpringDemo01</finalName>
        </build>
    </project>

    web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://java.sun.com/xml/ns/javaee"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
        version="3.0">
      <display-name>Archetype Created Web Application</display-name>
      <!-- Spring和mybatis的配置文件 -->
        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-mybatis.xml</param-value>
        </context-param>
        <!-- 编码过滤器 -->
        <filter>
            <filter-name>encodingFilter</filter-name>
            <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
            <async-supported>true</async-supported>
            <init-param>
                <param-name>encoding</param-name>
                <param-value>UTF-8</param-value>
            </init-param>
        </filter>
        <filter-mapping>
            <filter-name>encodingFilter</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
        <!-- Spring监听器 -->
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
        <!-- 防止Spring内存溢出监听器 -->
        <listener>
            <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
        </listener>
        <!-- Spring MVC servlet -->
        <servlet>
            <servlet-name>SpringMVC</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>1</load-on-startup>
            <async-supported>true</async-supported>
        </servlet>
        <servlet-mapping>
            <servlet-name>SpringMVC</servlet-name>
            <!-- 此处可以可以配置成*.do,对应struts的后缀习惯 -->
            <url-pattern>/</url-pattern>
        </servlet-mapping>
    </web-app>
  • 相关阅读:
    Microsoft Enterprise Library 5.0 系列(二) Cryptography Application Block (初级)
    Microsoft Enterprise Library 5.0 系列(五) Data Access Application Block
    Microsoft Enterprise Library 5.0 系列(八) Unity Dependency Injection and Interception
    Microsoft Enterprise Library 5.0 系列(九) Policy Injection Application Block
    Microsoft Enterprise Library 5.0 系列(三) Validation Application Block (高级)
    软件研发打油诗祝大家节日快乐
    从挖井的故事中想到开发管理中最容易忽视的几个简单道理
    ITIL管理思想的执行工具发布
    管理类软件设计“渔”之演化
    20070926日下午工作流与ITILQQ群 事件管理 讨论聊天记录
  • 原文地址:https://www.cnblogs.com/LoganChen/p/13215846.html
Copyright © 2011-2022 走看看