专业企业网站建设哪家服务好,车辆年检查询系统官方网站,wordpress 架构图,wp做网站依赖传递 只添加了一个struts2-core依赖#xff0c;发现项目中出现了很多jar#xff0c;这种情况 叫 依赖传递 查找坐标 依赖版本冲突的解决 1、 第一声明优先原则 dependencies!-- spring-beans-4.2.4 --dependencygroupIdorg.springfra… 依赖传递 只添加了一个struts2-core依赖发现项目中出现了很多jar这种情况 叫 依赖传递 查找坐标 依赖版本冲突的解决 1、 第一声明优先原则 dependencies!-- spring-beans-4.2.4 --dependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion4.2.4.RELEASE/version/dependency!-- spring-beans-3.0.5 --dependencygroupIdorg.apache.struts/groupIdartifactIdstruts2-spring-plugin/artifactIdversion2.3.24/version/dependency 2、 路径近者优先原则 自己添加jar包(自己明确的添加Jar包) dependencygroupIdorg.springframework/groupIdartifactIdspring-beans/artifactIdversion4.2.4.RELEASE/version/dependency 3、 排除原则 dependencygroupIdorg.apache.struts/groupIdartifactIdstruts2-spring-plugin/artifactIdversion2.3.24/versionexclusionsexclusiongroupIdorg.springframework/groupIdartifactIdspring-beans/artifactId/exclusion/exclusions/dependency 4、 版本锁定原则 propertiesspring.version4.2.4.RELEASE/spring.versionhibernate.version5.0.7.Final/hibernate.versionstruts.version2.3.24/struts.version/properties!-- 锁定版本struts2-2.3.24、spring4.2.4、hibernate5.0.7 --dependencyManagementdependenciesdependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion${spring.version}/version/dependency
/dependencies
/dependencyManagement -----------------------Maven中整合Spring3.0Struts2.3Mybatis3.2------------------------------------- 工程结构: pom.xml project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdMavenDemo/groupIdartifactIdMavenDemo/artifactIdversion0.0.1-SNAPSHOT/versionpackagingwar/packagingname /description / !-- 声明变量下面用类似于el表达式提取 --propertiesproject.build.sourceEncodingUTF-8/project.build.sourceEncodingstruts.version2.3.24.1/struts.versionstruts.javassist.version3.12.1.GA/struts.javassist.versionspring.version3.0.5.RELEASE/spring.versionmybatis.version3.2.2/mybatis.versionmybatis.spring.version1.2.1/mybatis.spring.versionmysql.version5.1.37/mysql.versionslf4j.version1.7.5/slf4j.versionaspectj.version1.6.10/aspectj.version/propertiesdependencies!-- struts2 依赖包 --dependencygroupIdorg.apache.struts/groupIdartifactIdstruts2-core/artifactIdversion${struts.version}/version/dependencydependencygroupIdjavassist/groupIdartifactIdjavassist/artifactIdversion${struts.javassist.version}/version/dependencydependencygroupIdorg.apache.struts/groupIdartifactIdstruts2-spring-plugin/artifactIdversion${struts.version}/version/dependency!-- spring 依赖包 --dependencygroupIdorg.springframework/groupIdartifactIdspring-core/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-aop/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-test/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-tx/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-beans/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-aspects/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-orm/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-oxm/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-web/artifactIdversion${spring.version}/version/dependency!-- mybatis 依赖包 --dependencygroupIdorg.mybatis/groupIdartifactIdmybatis/artifactIdversion${mybatis.version}/version/dependencydependencygroupIdcglib/groupIdartifactIdcglib/artifactIdversion2.2.2/version/dependencydependencygroupIdorg.mybatis/groupIdartifactIdmybatis-spring/artifactIdversion${mybatis.spring.version}/version/dependency!-- myql 依赖包 --dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion${mysql.version}/version/dependency!-- aspectj 依赖包 --dependencygroupIdorg.aspectj/groupIdartifactIdaspectjrt/artifactIdversion${aspectj.version}/version/dependency!-- dependency groupIdorg.aspectj/groupId artifactIdaspectjweaver/artifactId version${aspectj.version}/version /dependency --!-- slf4j 依赖包 --dependencygroupIdorg.slf4j/groupIdartifactIdslf4j-log4j12/artifactIdversion${slf4j.version}/version/dependency!-- 测试 --!-- dependency groupIdjunit/groupId artifactIdjunit/artifactId version${junit.version}/version /dependency --dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.9/version/dependencydependencygroupIdjavax.servlet/groupIdartifactIdservlet-api/artifactIdversion2.5/versionscopeprovided/scope/dependencydependencygroupIdjavax.servlet/groupIdartifactIdjsp-api/artifactIdversion2.0/versionscopeprovided/scope/dependency!-- 数据库连接池 --dependencygroupIdc3p0/groupIdartifactIdc3p0/artifactIdversion0.9.1.2/version/dependency!-- 调试过程中自己加的包依赖包 --dependencygroupIdorg.apache.logging.log4j/groupIdartifactIdlog4j-api/artifactIdversion2.0-rc1/version/dependencydependencygroupIdorg.apache.logging.log4j/groupIdartifactIdlog4j-core/artifactIdversion2.0-rc1/version/dependencydependencygroupIdorg.aspectj/groupIdartifactIdaspectjweaver/artifactIdversion1.8.7/version/dependency/dependenciesbuild!-- 配置了很多插件 --plugins!-- 编译插件 --plugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion3.5.1/versionconfigurationsource1.7/sourcetarget1.7/targetencodingUTF-8/encoding/configuration/plugin!-- tomcat插件 --plugingroupIdorg.apache.tomcat.maven/groupIdartifactIdtomcat7-maven-plugin/artifactIdversion2.2/versionconfigurationport80/portpath/SSM/path/configuration/plugin/plugins/build
/project web.xml ?xml version1.0 encodingUTF-8?
web-app xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlnshttp://java.sun.com/xml/ns/javaeexsi:schemaLocationhttp://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsdidWebApp_ID version3.0welcome-file-listwelcome-fileindex.jsp/welcome-file/welcome-file-listservletdescription/descriptiondisplay-nameHello/display-nameservlet-nameServletTest/servlet-nameservlet-classcn.qlq.Servlet.ServletTest/servlet-class/servletservlet-mappingservlet-nameServletTest/servlet-nameurl-pattern/ServletTest/url-pattern/servlet-mappinglistenerlistener-classorg.springframework.web.context.ContextLoaderListener/listener-class/listenercontext-paramparam-namecontextConfigLocation/param-nameparam-valueclasspath:applicationContext-*.xml/param-value/context-paramfilterfilter-namestruts2/filter-namefilter-classorg.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter/filter-class/filterfilter-mappingfilter-namestruts2/filter-nameurl-pattern/*/url-pattern/filter-mapping/web-app applicationContext-action.xml ?xml version1.0 encodingUTF-8?
beans xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
xmlnshttp://www.springframework.org/schema/beans
xmlns:contexthttp://www.springframework.org/schema/context
xmlns:aophttp://www.springframework.org/schema/aop
xmlns:txhttp://www.springframework.org/schema/tx
xsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd !--4.注解扫描Action --!-- 4.开启组件自动扫描也就是启用注解。前提是导入spring-context-3.2.xsd约束和引入新的命名空间注解扫描service出错了 --context:component-scan base-packagecn.qlq.Action/context:component-scan/beans applicationContext-service.xml ?xml version1.0 encodingUTF-8?
beans xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlnshttp://www.springframework.org/schema/beans xmlns:contexthttp://www.springframework.org/schema/contextxmlns:aophttp://www.springframework.org/schema/aop xmlns:txhttp://www.springframework.org/schema/txxsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd !--4.注解扫描service --!-- 4.开启组件自动扫描也就是启用注解。前提是导入spring-context-3.2.xsd约束和引入新的命名空间注解扫描service出错了 --context:component-scan base-packagecn.qlq.service/context:component-scan/beans applicationContext-dao.xml ?xml version1.0 encodingUTF-8?
beans xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
xmlnshttp://www.springframework.org/schema/beans
xmlns:contexthttp://www.springframework.org/schema/context
xmlns:aophttp://www.springframework.org/schema/aop
xmlns:txhttp://www.springframework.org/schema/tx
xsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd !-- 0.连接池属性设置读取指定的properties文件 --context:property-placeholder locationclasspath:db.properties / !-- 1.将连接池放入spring容器 --bean namedataSource classcom.mchange.v2.c3p0.ComboPooledDataSourceproperty namejdbcUrl value${jdbc.url}/propertyproperty namedriverClass value${jdbc.driver}/propertyproperty nameuser value${jdbc.username}/propertyproperty namepassword value${jdbc.password}/property/bean!--2. 配置 Mybatis的会话工厂 --bean idsqlSessionFactory classorg.mybatis.spring.SqlSessionFactoryBean!-- 数据源 --property namedataSource refdataSource /!-- 配置Mybatis的核心 配置文件所在位置 --property nameconfigLocation valueclasspath:sqlMapConfig.xml //bean!-- 3.1 mapper代理配置方法一 这种方法需要大量重复的配置代理对象MapperFactoryBean:根绝mapper接口生成代理对象bean idselectUser classorg.mybatis.spring.mapper.MapperFactoryBeanproperty namemapperInterface valuecn.qlq.core.dao.SelectUser/propertyproperty namesqlSessionFactory refsqlSessionFactory/property/bean--!-- 3.2通过MapperScannerConfigurer扫描进行批量生成代理对象 遵循规范:mapper.java和mapper.xml名字一样且在同一个目录下自动扫描出来的代理对象的id为mapper类类名首字母小写 --bean classorg.mybatis.spring.mapper.MapperScannerConfigurer!-- 指定扫描的包名如果有多个用半角逗号分隔 --property namebasePackage valuecn.qlq.mapper/propertyproperty namesqlSessionFactoryBeanName valuesqlSessionFactory/property/bean!-- 4.配置事务管理器 --!-- 事务核心管理器封装了事务操作依赖于连接池 --bean nametransactionManager classorg.springframework.jdbc.datasource.DataSourceTransactionManagerproperty namedataSource refdataSource/property/bean!-- 5.开启注解管理aop事务 --tx:annotation-driven/!-- 事务模板对象依赖于事务核心管理器 --bean nametransactionTemplate classorg.springframework.transaction.support.TransactionTemplateproperty nametransactionManager reftransactionManager/property/bean !-- ················开始使用XML管理事务························ -- !-- 配置事务通知无论哪种方式都要用到事务的核心管理器--tx:advice transaction-managertransactionManager idfirstTxtx:attributes!--以方法为单位指定方法应用事务什么属性isolation:隔离级别read-only:只读属性propagation:传播行为--!-- 企业中运用通配符命名规则。两套增删改查(8种) --tx:method namesave* isolationDEFAULT read-onlyfalse propagationREQUIRED/tx:method namepersist* isolationDEFAULT read-onlyfalse propagationREQUIRED/tx:method namedelete* isolationDEFAULT read-onlyfalse propagationREQUIRED/tx:method nameremove* isolationDEFAULT read-onlyfalse propagationREQUIRED/tx:method nameupdate* isolationDEFAULT read-onlyfalse propagationREQUIRED/tx:method namemodify* isolationDEFAULT read-onlyfalse propagationREQUIRED/tx:method nameget* isolationDEFAULT read-onlytrue propagationREQUIRED/tx:method namefind* isolationDEFAULT read-onlytrue propagationREQUIRED//tx:attributes/tx:advice!-- 配置织入 --aop:config!-- 配置切点表达式 --aop:pointcut expressionexecution(* cn.qlq.Service.*ServiceImpl.*(..)) idtexPc/!-- 配置切面:切点通知advice-ref通知名称pointcut-ref切点名称--aop:advisor advice-reffirstTx pointcut-reftexPc//aop:config
/beans SqlMapConfig.xml ?xml version1.0 encodingUTF-8 ?
!DOCTYPE configuration PUBLIC -//mybatis.org//DTD Config 3.0//EN
http://mybatis.org/dtd/mybatis-3-config.dtd
configuration!-- 只需要定义个别名,这个应该有--typeAliases package namecn.xm.bean//typeAliases !-- 动态代理也不需要配置这个扫描留着也行 --mappers!-- 原始DAO开发使用这个手动加载xml --package namecn.xm.mapper/ /mappers/configuration struts.xml ?xml version1.0 encodingUTF-8 ?
!DOCTYPE struts PUBLIC-//Apache Software Foundation//DTD Struts Configuration 2.3//ENhttp://struts.apache.org/dtds/struts-2.3.dtdstrutsconstant namestruts.custom.i18n.resources valueerrors/constant!--struts.objectFactory spring :将Struts创建对象工厂改为Springstruts.objectFactory.spring.autoWire name spring自动装配Struts的依赖属性(默认开启)--constant namestruts.objectFactory valuespring/constant!-- 第一个package命名空间 --package nameuser namespace/ extendsstruts-default!-- class是spring扫描出来的名字 --action nameuser_* classuserAction method{1}result nameadd/index.jsp/result result namedelete/index.jsp/result result nameupdate/index.jsp/result result namefind/index.jsp/result /action/package
/struts db.properties ;;;;;;;;;;;;;;;;;;;;
;DataBaseConnection;
;;;;;;;;;;;;;;;;;;;;jdbc.drivercom.mysql.jdbc.Driver
jdbc.urljdbc:mysql://localhost:3306/maven
jdbc.usernamesa
jdbc.password123456 测试源码及配置下载地址 https://github.com/qiao-zhi/Maven_SSM.git 转载于:https://www.cnblogs.com/qlqwjy/p/7268068.html