ssm常用配置

分模块构建项目

工程分层的好处:程序的通用性(提高代码的复用率),降低了代码的耦合性
特点1(继承):
----ssm_parent父工程:存放项目的所有jar包。
----ssm_web和ssm_service和ssm_dao有选择的继承jar包,并在自己的工程中使用。这样可以消除jar包重复,并锁定版本
特点2(聚合):
----ssm_web依赖于ssm_service,ssm_service依赖于ssm_dao,我们启动ssm_web,便可以访问我们的程序。
----执行安装的时候,执行ssm_parent,就可以将所有的子工程全部进行安装。
理解继承和聚合总结:
----通常继承和聚合同时使用。
· 何为继承?
----继承是为了消除重复,如果将 dao、 service、 web 分开创建独立的工程则每个工程的 pom.xml 文件中的内容存在重复,比如:设置编译版本、锁定 spring 的版本的等,可以将这些重复的 配置提取出来在父工程的 pom.xml 中定义。
· 何为聚合?
----项目开发通常是分组分模块开发, 每个模块开发完成要运行整个工程需要将每个模块聚合在 一起运行,比如: dao、 service、 web 三个工程最终会打一个独立的 war 运行。

父工程



ssm_model



<spring.version>5.0.2.RELEASE</spring.version>







org.springframework
spring-context
${spring.version}





junit
junit
test

子模块



day49_maven
org.example
1.0-SNAPSHOT

4.0.0

ssm_dao




org.example
ssm_model
1.0-SNAPSHOT



org.mybatis
mybatis

事务





<tx:advice id="transferAdvice" transaction-manager="transactionManager">
tx:attributes

<tx:method name="set*" rollback-for="java.lang.Exception"/>
</tx:attributes>
</tx:advice>

aop:config

<aop:pointcut id="addAccountAop" expression="execution(* com.baidu.service.impl.AccountServiceImpl.*(..))"/>

<aop:advisor advice-ref="transferAdvice" pointcut-ref="addAccountAop"/>
</aop:config>

视图解析器等组件







mvc:default-servlet-handler/

mvc:annotation-driven
mvc:message-converters





text/html
application/json



</mvc:message-converters>
</mvc:annotation-driven>

路由分发servlet


dispatch
org.springframework.web.servlet.DispatcherServlet

contextConfigLocation
classpath:spring-mvc.xml

1


dispatch
/



CharacterEncodingFilter
org.springframework.web.filter.CharacterEncodingFilter


encoding
UTF-8



forceEncoding
true



CharacterEncodingFilter
/*

整合mybatis


















坐标




org.springframework
spring-context
5.0.2.RELEASE



org.springframework
spring-webmvc
5.0.2.RELEASE



org.springframework
spring-jdbc
5.0.2.RELEASE



org.mybatis
mybatis
3.5.3


org.mybatis
mybatis-spring
1.3.0



mysql
mysql-connector-java
5.1.6



org.slf4j
slf4j-log4j12
1.7.26



org.projectlombok
lombok
1.18.10
provided



javax.servlet
servlet-api
2.5
provided


javax.servlet.jsp
jsp-api
2.0
provided



jstl
jstl
1.2



org.aspectj
aspectjweaver
1.8.7



com.fasterxml.jackson.core
jackson-databind
2.9.0


com.fasterxml.jackson.core
jackson-core
2.9.0


com.fasterxml.jackson.core
jackson-annotations
2.9.0

Jar包冲突问题

引入不同的Jar包依赖相同Jar包的不同版本

第一声明优先原则

哪个jar包在靠上的位置,这个jar包就是先声明的,先声明的jar包下的依赖包,可以优先引入项目中

路径近者优先原则

直接依赖比传递依赖路径近,你那么最终进入项目的jar包会是路径近的直接依赖包
直接依赖:项目中直接导入的jar包就是项目的直接依赖包
传递依赖(间接依赖):项目中没有直接导入的jar包,但是导入的jar包使用了

强制排除

无法通过依赖管理原则排除的,直接排除

      <!--写在dependency中-->
      <!--强制排除这个jar包导入的jar包-->
      <exclusions>
          <exclusion>
              <groupId>org.springframework</groupId>
              <artifactId>spring-core</artifactId>
          </exclusion>
      </exclusions>
posted @ 2020-12-30 19:33  笨蛋树上笨蛋果  阅读(231)  评论(0)    收藏  举报