SSM的整合
程序员文章站
2022-04-30 20:20:43
框架的整合: 1. 依赖整合 aop的包: aspectweaver spring aop spring核心: spring context spring web spring webmvc spring test spring tx spring jdbc junit: junit mysql: ......
框架的整合:
1. 依赖整合 aop的包: aspectweaver spring-aop spring核心: spring-context spring-web spring-webmvc spring-test spring-tx spring-jdbc junit: junit mysql: mysql-connector-java servlet+jsp: servlet-api jsp-api jstl: jstl log: log4j slf4j-api slf4j-log4j12 mybatis: mybatis mybatis-spring 连接池: c3p0 <properties> <spring.version>5.0.2.release</spring.version> <slf4j.version>1.6.6</slf4j.version> <log4j.version>1.2.12</log4j.version> <mysql.version>5.1.6</mysql.version> <mybatis.version>3.4.5</mybatis.version> </properties> <dependencies> <!-- spring --> <dependency> <groupid>org.aspectj</groupid> <artifactid>aspectjweaver</artifactid> <version>1.6.8</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-aop</artifactid> <version>${spring.version}</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-context</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-webmvc</artifactid> <version>${spring.version}</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-test</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>junit</groupid> <artifactid>junit</artifactid> <version>4.12</version> <scope>compile</scope> </dependency> <dependency> <groupid>mysql</groupid> <artifactid>mysql-connector-java</artifactid> <version>${mysql.version}</version> </dependency> <dependency> <groupid>javax.servlet</groupid> <artifactid>servlet-api</artifactid> <version>2.5</version> <scope>provided</scope> </dependency> <dependency> <groupid>javax.servlet.jsp</groupid> <artifactid>jsp-api</artifactid> <version>2.0</version> <scope>provided</scope> </dependency> <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>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 --> <dependency> <groupid>org.mybatis</groupid> <artifactid>mybatis</artifactid> <version>${mybatis.version}</version> </dependency> <dependency> <groupid>org.mybatis</groupid> <artifactid>mybatis-spring</artifactid> <version>1.3.0</version> </dependency> <dependency> <groupid>c3p0</groupid> <artifactid>c3p0</artifactid> <version>0.9.1.2</version> <type>jar</type> <scope>compile</scope> </dependency> </dependencies> 2. 配置文件整合 applicationcontext.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: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.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"> <!-- 开启注解扫描,要扫描的是service和dao层的注解,要忽略web层注解,因为web层让springmvc框架 去管理 --> <context:component-scan base-package="cn.itcast"> <!-- 配置要忽略的注解 --> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.controller"/> </context:component-scan> <!--spring整合mybatis框架--> <!--配置c3p0连接池--> <bean id="datasource" class="com.mchange.v2.c3p0.combopooleddatasource"> <property name="driverclass" value="com.mysql.jdbc.driver"/> <property name="jdbcurl" value="jdbc:mysql://localhost:3306/ssm"/> <property name="user" value="root"/> <property name="password" value="nrblwbb7"/> </bean> <!--配置sqlsessionfactory--> <bean id="sqlsessionfactory" class="org.mybatis.spring.sqlsessionfactorybean"> <property name="datasource" ref="datasource"/> </bean> <!--配置映射接口所在的包--> <!--自动为接口生成代理对象,并将代理对象存在spring的ioc容器中--> <bean id="mapperscanner" class="org.mybatis.spring.mapper.mapperscannerconfigurer"> <property name="basepackage" value="com.itheima.mapper"/> </bean> <!--配置spring框架声明式事务管理--> <!--配置事务管理器--> <bean id="transactionmanager" class="org.springframework.jdbc.datasource.datasourcetransactionmanager"> <property name="datasource" ref="datasource"/> </bean> <!--配置事务通知--> <tx:advice id="txadvice" transaction-manager="transactionmanager"> <tx:attributes> <tx:method name="find*" read-only="true"/> <tx:method name="*"/> </tx:attributes> </tx:advice> <!--配置aop增强,切面--> <aop:config> <aop:advisor advice-ref="txadvice" pointcut="execution(* com.itheima.service.impl.*.*(..))"/> </aop:config> </beans> springmvc.xml的配置文件的约束: <?xml version="1.0" encoding="utf-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!--开启注解扫描--> <context:component-scan base-package="com.itheima"> <!--配置需要扫描的注解,只需要扫描controller注解就可以--> <context:include-filter type="annotation" expression="org.springframework.stereotype.controller"/> </context:component-scan> <!--配置视图解析器--> <bean id="internalresourceviewresolver" class="org.springframework.web.servlet.view.internalresourceviewresolver"> <property name="prefix" value="/web-inf/pages/"/> <property name="suffix" value=".jsp"/> </bean> <!--配置静态资源过滤,不拦截--> <mvc:resources mapping="/js/**" location="/js/"></mvc:resources> <mvc:resources mapping="/images/**" location="/images/"></mvc:resources> <mvc:resources mapping="/css/**" location="/css/"></mvc:resources> <!--开启springmvc的注解驱动支持--> <mvc:annotation-driven></mvc:annotation-driven> </beans> 3. 创建项目的结构: domain controller mapper service impl 4. spring整合springmvc, 核心是需要在web.xml配置文件中加载applicationcontext.xml文件(也就是配置spring的监听器): <!--配置spring的监听器--> <listener> <listener-class>org.springframework.web.context.contextloaderlistener</listener-class> </listener> <!--配置加载类的配置文件--> <context-param> <param-name>contextconfiglocation</param-name> <param-value>classpath:applicationcontext.xml</param-value> </context-param> <!--配置前端控制器--> <servlet> <servlet-name>dispatcherservlet</servlet-name> <servlet-class>org.springframework.web.servlet.dispatcherservlet</servlet-class> <!--加载springmvc的配置文件--> <init-param> <param-name>contextconfiglocation</param-name> <param-value>classpath:springmvc.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> <!--配置编码过滤器--> <filter> <filter-name>characterencoding</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>characterencoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 5. 在controller中注入service,测试是否整合成功,如果正常访问并输出,则说明spring整合springmvc成功 6. mybatis的配置 <?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="mysql"> <environment id="mysql"> <transactionmanager type="jdbc"></transactionmanager> <datasource type="pooled"> <property name="driver" value="com.mysql.jdbc.driver"/> <property name="url" value="jdbc:mysql://localhost:3306/ssm"/> <property name="username" value="root"/> <property name="password" value="nrblwbb7"/> </datasource> </environment> </environments> <!--引入映射配置文件--> <mappers> <package name="com.itheima.mapper" /> </mappers> </configuration> 7. spring整合mybatis mybatis的配置文件总共包含了两个部分,一个是环境的配置,包括事务和数据源,这两个部分交给spring,最后还有一个映射配置文件,也交给spring去整合,最后mybatis的配置文件就可以删除了. 在spring的配置文件中配置 连接池 <!--配置c3p0连接池--> <bean id="datasource" class="com.mchange.v2.c3p0.combopooleddatasource"> <property name="driverclass" value="com.mysql.jdbc.driver"/> <property name="jdbcurl" value="jdbc:mysql://localhost:3306/ssm"/> <property name="user" value="root"/> <property name="password" value="nrblwbb7"/> </bean> 配置sqlsessionfactory工厂 <!--配置sqlsessionfactory--> <bean id="sqlsessionfactory" class="org.mybatis.spring.sqlsessionfactorybean"> <property name="datasource" ref="datasource"/> </bean> 配置mapper接口所在的包 <!--配置映射接口所在的包--> <bean id="mapperscanner" class="org.mybatis.spring.mapper.mapperscannerconfigurer"> <property name="basepackage" value="com.itheima.mapper"/> </bean> 8. 配置spring的事务管理 <!--配置事务管理器--> <bean id="transactionmanager" class="org.springframework.jdbc.datasource.datasourcetransactionmanager"> <property name="datasource" ref="datasource"/> </bean> <!--配置事务通知--> <tx:advice id="txadvice" transaction-manager="transactionmanager"> <tx:attributes> <tx:method name="find*" read-only="true"/> <tx:method name="*"/> </tx:attributes> </tx:advice> <!--配置aop增强,切面--> <aop:config> <aop:advisor advice-ref="txadvice" pointcut="execution(* com.itheima.service.impl.*.*(..))"/> </aop:config>
log4j日志
1. 日志级别: trace --> debug --> info --> warn --> error --> fatal
提供了两个模板,一个是mybatis使用注解,一个mybatis使用xml,可以去下载查看
https://www.jianguoyun.com/p/dtytbr0q7skpbxj2_nk
上一篇: vue集成百度富文本编辑器
下一篇: d3.js制作蜂巢图表带动画效果