1. 程式人生 > >SSM框架整合:完成登入,解釋配置檔案為何這麼使用,父子容器問題

SSM框架整合:完成登入,解釋配置檔案為何這麼使用,父子容器問題

前言

  簡單學習了SSM框架,現在開始完成第一個任務:SSM框架整合,以及搞明白為什麼要這麼配置檔案~第一次整合,搞明白裡面如何運作是很關鍵的。

專案目錄

在這裡插入圖片描述

名稱 作用
mapper mybatis對映檔案
spring spring家族配置檔案=context為父(全域性性)+mybatis整合+transaction事務+mvc
jdbc-druid-config druid配置檔案
log4j2 log檔案
mybatis-config mybatis的配置檔案

專案依賴

<dependencies>
        <dependency
>
<groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>5.1.0.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>5.1.0.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-context --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.1.0.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-test --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>5.1.0.RELEASE</version> <scope>test</scope> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-web --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>5.1.0.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.1.0.RELEASE</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> <scope>runtime</scope> </dependency> <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.2</version> </dependency> <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.3.2</version> </dependency> <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.12</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core --> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.11.1</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.11.1</version> </dependency> <!-- https://mvnrepository.com/artifact/com.alibaba/druid --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.11</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.1.0.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.6</version> </dependency> <!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api --> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>javax.servlet.jsp-api</artifactId> <version>2.3.3</version> <scope>provided</scope> </dependency> <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>provided</scope> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.taglibs/taglibs-standard-impl --> </dependencies>

依賴沒進行整理,有的用不到是嘗試用的,可以根據需要進行刪減。

配置檔案

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

    <!--告訴它spring配置檔案在哪-->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:/spring/spring-context.xml</param-value>
    </context-param>

    <!--這個比較關鍵:通過Listener來載入IOC容器上下文,就是一個橋樑-->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <!--編碼過濾器-->
    <filter>
        <filter-name>encodingFilter</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>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <!--分發任務Servlet-->
    <servlet>
        <servlet-name>dispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--制定mvc配置檔案在哪-->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring/spring-mvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
        <!--這裡是'/'而不是'/*'-->
        <url-pattern>/</url-pattern>
    </servlet-mapping>

</web-app>

理解一哈:

  • Listener: 這裡的Listener是比較意思的地方,當tomcat載入完servletContext上下文之後,它怎麼知道要載入spring的呢?還記得Listener監聽器的作用,這裡可以認為是servletContext起來了之後,監聽器監聽到了,就開始啟動spring載入IOC容器了。知道它的作用就可以了。
  • dispatcherServlet: 是一個管家。它就像快遞的中轉站一樣,來了一個請求,我就把它送給某一個Servlet去處理。

druid 資料庫連線池

# database configure
jdbc.url                                        = jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=true&rewriteBatchedStatements=true
jdbc.username                                   = root
jdbc.password                                   = lyy1314520

# druid datasource
druid.initialSize                               = 10
druid.minIdle                                   = 10
druid.maxActive                                 = 50
druid.maxWait                                   = 60000
druid.timeBetweenEvictionRunsMillis             = 60000
druid.minEvictableIdleTimeMillis                = 300000
druid.validationQuery                           = SELECT 1
druid.testWhileIdle                             = true
druid.testOnBorrow                              = false
druid.testOnReturn                              = false
druid.poolPreparedStatements                    = false
druid.maxPoolPreparedStatementPerConnectionSize = 20

log4j2

status = error
name = PropertiesConfig

filters = threshold

filter.threshold.type = ThresholdFilter
filter.threshold.level = debug

appenders = console

appender.console.type = Console
appender.console.name = STDOUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

rootLogger.level = debug
rootLogger.appenderRefs = stdout
rootLogger.appenderRef.stdout.ref = STDOUT

重點!spring配置檔案整合

老大哥:全域性context檔案

<?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">
    <context:component-scan base-package="dao"/>
    <context:component-scan base-package="service"/>

    <import resource="spring-context-mybatis.xml"/>
    <import resource="spring-context-transaction.xml"/>
</beans>

完成了2個任務,一個掃描dao,一個掃描service,然後就是匯入另外兩個配置檔案,這樣的作用是,讓整個配置條理很清晰,不要把它們擠在一起。

二哥:mybatis 整合

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

    <!--配置properties檔案的位置-->
    <context:property-placeholder location="classpath:jdbc-druid-config.properties"/>

    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
        <!-- 基本屬性 url、user、password -->
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>

        <!-- 配置初始化大小、最小、最大 -->
        <property name="initialSize" value="${druid.initialSize}"/>
        <property name="minIdle" value="${druid.minIdle}"/>
        <property name="maxActive" value="${druid.maxActive}"/>

        <!-- 配置獲取連線等待超時的時間 -->
        <property name="maxWait" value="${druid.maxWait}"/>
        <!-- 配置間隔多久才進行一次檢測,檢測需要關閉的空閒連線,單位是毫秒 -->
        <property name="timeBetweenEvictionRunsMillis" value="${druid.timeBetweenEvictionRunsMillis}"/>

        <!-- 配置一個連線在池中最小生存的時間,單位是毫秒 -->
        <property name="minEvictableIdleTimeMillis" value="${druid.minEvictableIdleTimeMillis}"/>

        <property name="validationQuery" value="${druid.validationQuery}"/>
        <property name="testWhileIdle" value="${druid.testWhileIdle}"/>
        <property name="testOnBorrow" value="${druid.testOnBorrow}"/>
        <property name="testOnReturn" value="${druid.testOnReturn}"/>

        <!-- 開啟PSCache,並且指定每個連線上PSCache的大小  如果用Oracle,則把poolPreparedStatements配置為true,mysql可以配置為false。-->
        <property name="poolPreparedStatements" value="${druid.poolPreparedStatements}"/>
        <property name="maxPoolPreparedStatementPerConnectionSize"
                  value="${druid.maxPoolPreparedStatementPerConnectionSize}"/>

        <!--End 慢sql監控及log4j設定,不想監控的話將proxyFilters屬性刪除即可 -->

    </bean>
    <!--配置sqlSessionFactory-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="mapperLocations" value="classpath:mapper/*.xml"/>
        <property name="configLocation" value="classpath:mybatis-config.xml"/>
    </bean>

    <!--配置mapper掃描-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
        <property name="basePackage" value="dao"/>
    </bean>
</beans>

這個沒啥好說的,就是這麼配置咯~然後properties配置字面量,引用等

三哥:事務處理

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

    
            
           

相關推薦

SSM框架整合完成登入解釋配置檔案為何這麼使用父子容器問題

前言   簡單學習了SSM框架,現在開始完成第一個任務:SSM框架整合,以及搞明白為什麼要這麼配置檔案~第一次整合,搞明白裡面如何運作是很關鍵的。 專案目錄 名稱 作用 mapper mybatis對映檔案 spring spring家族配

SSM框架整合SpringMVC + Spring + MyBatis+Maven

專案目的           建立一個登陸頁面,輸入username和password,如果和資料庫對應,則跳轉的success.jsp,否則跳轉到error.jsp 專案下載 百

搭建ssm框架專案基本原理和主要的配置檔案

1.springmvc是spring框架的一個模組,springmvc和spring無需通過中間整合層進行整合。springmvc是一個基於mvc的web框架。mvc的思想大家已經很熟悉了,簡稱“Model-View-Controller”。 下面先簡單介紹下我對spring-mvc的理

搭建ssm框架專案基本原理和主要的配置檔案小結

1.springmvc是spring框架的一個模組,springmvc和spring無需通過中間整合層進行整合。springmvc是一個基於mvc的web框架。mvc的思想大家已經很熟悉了,簡稱“Model-View-Controller”。 下面先簡單介紹下我對sprin

系統啟動時spring配置檔案解析失敗報”cvc-elt.1: 找不到元素 'beans' 的宣告“異常

轉自: http://blog.163.com/[email protected]/blog/static/86556803201342210243656/ 現象:Tomcat啟動時,spring載入配置檔案applicationContext.xml出錯,丟

centos6.5 ifconfig顯示為eth1但是配置檔案只有eth0配置不生效

今天同事給了我一個centos6.5的ovf包,我部署上伺服器,一切都順利,但是在配置網絡卡的時候遇到了問題。 我用ifconfig命令只能顯示lo即迴路網絡卡,但是用ifconfig -a時會顯示出eth1 google了很多解決辦法。最終找到了一個問題的原因。從上面的檔案可以看出

SSM框架整合Apache Shiro實現安全登入驗證和許可權驗證功能

第一部分 Apache Shiro的簡介  1、什麼是 apache shiro : Apache Shiro是一個功能強大且易於使用的Java安全框架,提供了認證,授權,加密,和會話管理 如同 spring security 一樣都是是一個許可權安全框架,但是與Spri

SSM框架整合-實現CRUD登入和分頁操作

二.專案結構:spring+springmvc+mybatis+maven+mysql+freemark+jetty 三.專案介紹:主要實現登入 crud以及分頁效果 1.登入介面 2.主頁 3.新增頁面 4.編輯頁面 四.搭建 1)準備配置

SSM框架整合後Tomcat正常啟動控制檯未報錯訪問所有頁面均報404異常總結

最近整合了ssm框架,今天想完善一下,遇到Tomcat正常啟動,控制檯也正常並未報錯,但訪問均報404異常 404異常,很常見,大多情況是路徑錯誤、web.xml檔案對映路徑寫錯、伺服器設定、servlet的jar包未導進去或者沒有隨專案釋出等等。 如果是路徑錯誤,仔細檢查即可解決問

ssm框架整合pom.xml依賴分析

宣告,使用spring5.0.7.RELEASE /mybatis3.4.6/mysql8/JDK8進行整合; 採用父工程子模組方式 整合分2大部分: spring和springmvc、spring和mybatis整合 spring和springmvc、

Java Web強化SSM框架整合

網際網路發展日新月異,技術千變萬化,但求新切忌盲目。SSM框架在實際應用中因其便捷、優雅等特性獲得廣泛認可,因此SSM框架也成為Java開發中最流行且最實用的整合開發內容。 SSM包含Spring、Spring MVC以及MyBatis三大框架。本路徑將從Spring開始、

SSM框架整合搭建流程記錄非maven方式

簡答描述以及環境介紹 本人採用開發工具為Eclipse,JDK版本為1.8 tomcat為7.0,啟動未報錯。初學者建議根據2345678流程操作 匯入Jar包 利用逆向工程自動生成 實體類,Mapper介面,mapper檔案 編輯web.xml(配置s

SSM框架整合Maven工程整合Spring+Springmvc+Mybatis(詳細教程附程式碼)

一、基本概念 1、Spring Spring是一個開源框架,Spring是於2003 年興起的一個輕量級的Java 開發框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中闡述的部分

SSM框架整合PageHelper外掛實現分頁功能

本文簡單的介紹瞭如何運用PageHelper外掛實現分頁功能。 一、在 pom.xml 中新增如下依賴: 從下面的地址中檢視最新版本的 jar 包 <!-- 新增分佈外掛的包pageh

ssm框架整合配置---web.xml傻傻分不清楚

web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:x

ssm框架整合AOP實現日誌記錄功能

在ssm框架中,實現一個切面日誌功能,起碼要掌握的知識有四點: 以下是自己之前做的一個專案,希望對你們有幫助 1:先定義一個自定義註解類 @Target({METHOD, TYPE}) @Retention(RetentionPolicy.RUNTIME) @In

SSM框架整合包括工作流Activiti

1:專案使用maven管理,pom.xml檔案內容如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-ins

ssm框架整合實現登入功能

一、準備所需的jar包1.1所需jar包 1.Spring框架jar包  2.Mybatis框架jar包  3.Spring的AOP事務jar包  4.Mybatis整合Spring中介軟體jar包  5.aspectj框架jar包  6.aop聯盟jar包  7.資料庫驅動

一步一步完成SSM框架整合(Spring+Spring MVC + Mybatis)

新建maven工程 eclipse中選擇new Maven Project項,制定archetype為webapp,填寫好groupId之類的,然後finish,這時可能工程有一些錯誤,通過修改Java Build Path,修復錯誤: 然後new一個s

晨魅--練習ssm框架整合做增刪改查操作

我的開發環境:Windows10系統開發工具:MyEclipse10,JDK1.8,MySQL5.0,Tomcat7.0ssm框架整合在MyEclipse裡建一個web工程,然後搭建環境,就是匯入jar包,我的jar包是管老師要的,裡邊有連線資料庫驅動的,有spring的,有