1.Spring框架
分層:SUN提供的EE的三層結構:控制層、業務層、數據訪問層(持久層)
struts:web層
Hibernate:數據訪問層
Mybatis:數據訪問層
搭建SSM框架:
1.引入所需jar包
2.配置文件
在src下面創建:applicationContext.xml
完整的約束
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">
Spring的配置文件applicationContext.xml( 配置掃描@Service @@Repository註解時,包名要與自己的相對應)
<!-- 配置掃描@Service @@Repository註解 -->
<context:component-scan base-package=“com.zq.service" />
<!--讀取jdbc.properties -->
<context:property-placeholder location="classpath:jdbc.properties" />
<!-- 打開aspectj的註解開發方式 -->
<aop:aspectj-autoproxy />
<!-- 配置數據庫連接 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${driverClass}"></property>
<property name="jdbcUrl" value="${jdbcUrl}"></property>
<property name="user" value="${user}"></property>
<property name="password" value="${password}"></property>
</bean>
<!-- 配置事務管理器 -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
<!-- 註冊一下事務管理器的驅動 -->
<tx:annotation-driven transaction-manager="transactionManager" />
數據庫連接信息src下面創建:jdbc.properties
driverClass=com.mysql.jdbc.Driver
jdbcUrl=jdbc:mysql://localhost:3306/shop
user=root
password=root
springMVC配置文件src下面創建:springmvc-config.xml(約束同spring配置文件的約束)
同樣,配置掃描器時,包名也要和自己的相對應
<!-- 配置掃描器 -->
<context:component-scan base-package="com.zq.controller" />
<!-- 註解驅動 -->
<mvc:annotation-driven />
<!--配置靜態資源的訪問映射,此配置中的文件,將不被前端控制器攔截 -->
<mvc:resources location="/js/" mapping="/js/**" />
<mvc:resources location="/css/" mapping="/css/**" />
<mvc:resources location="/images/" mapping="/images/**" />
<!-- 配置視圖解釋器ViewResolver -->
<bean id="jspViewResolver“ class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
<!-- 配置攔截器,先不加 -->
<!-- <mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**" />
<bean class="com.zq.interceptor.LoginInterceptor" />
</mvc:interceptor>
</mvc:interceptors> -->
配置文件---web.xml
<!-- 配置加載Spring文件的監聽器-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<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-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 初始化加載配置文件 可以不配,不配時,默認加載的springmvc的配置文件,去WEB-INF下面找:servlet的名稱-servlet.xml-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-config.xml</param-value>
</init-param>
<!-- 表示容器一啓動就加載servlet -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.do</url-pattern>
<!-- /攔截所有的請求,*.do攔截訪問請求地址後綴是.do的 -->
</servlet-mapping>
mybatis
只負責在xml中寫sql語句,不用知道如何調用的,和dao接口一一對應
在applicationContext.xml中添加mybatis配置
<!-- 配置 MyBatis的工廠 -->
<bean class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 數據源 -->
<property name="dataSource" ref="dataSource" />
<!-- 配置MyBatis的核心配置文件所在位置 -->
<property name="configLocation" value="classpath:mybatis-config.xml" />
</bean>
<!-- 接口開發,掃描 com.zq.dao包 ,寫在此包下的接口即可被掃描到 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.zq.dao" />
</bean>
4、mybatis-mybatis-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>
<!-- 別名定義,自動將報下面的類命名別名,首字母小寫 -->
<typeAliases>
<package name="com.zq.model" />
</typeAliases>
</configuration>