maven工程SSM框架整合配置详解

【一、web.xml中常用的配置】

1、指定Spring配置文件路径
2、Spring核心监听器
3、字符编码过来自
4、springmvc入口

<!--1、指定Spring配置文件路径-->
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:spring/applicationContext*.xml</param-value>
</context-param>

<!--2、Spring核心监听器,监听项目启动,初始化IOC容器-->
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<!--3、字符编码过滤器-->
<filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <!--初始化字符编码过滤器,设置为UTF-8-->
   <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>

<!--4、springmvc入口:包括创建servlet名字、类的入口和初始化的路径-->
<servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring/springmvc-servlet.xml</param-value>
    </init-param>
    <!--启动级别设为1,随着服务器启动而启动-->
    <load-on-startup>1</load-on-startup>
</servlet>

<!--springmvc的映射路径,配置/是为了迎合rest风格-->
<servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

【二、在resource目录下创建jdbc.properties】
和spring在同一层目录

jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/Demo
jdbc.username=root
jdbc.password=1234

【三、applicationContext.xml常用的配置】
1、配置包扫描
2、加载外部资源文件
3、引入外部资源文件

1、配置包扫描
<context:component-scan base-package=“travel.service.impl”/>

2、加载外部资源文件
<context:property-placeholder location=“classpath:jdbc.properties”/>

3、引入数据源

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
   <property name="driverClassName" value="${jdbc.driverClass}"></property>
    <property name="url" value="${jdbc.url}"></property>
    <property name="username" value="${jdbc.username}"></property>
    <property name="password" value="${jdbc.password}"></property>
</bean>

【四、springmvc-servlet.xml中配置】
1、配置包扫描
2、配置注解驱动
3、配置视图解析器
4、解决静态资源被拦截问题

<context:component-scan base-package="controller"/>

<!--配置注解驱动-->
<mvc:annotation-driven/>

<!--配置视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <!--配置前缀-->
    <property name="prefix" value="/WEB-INF/jsp/"/>
    <!--配置后缀-->
    <property name="suffix" value=".jsp"/>
</bean>

<!--解决静态资源被拦截的问题-->
<!--这是一个默认的handler,底层其实走的是转发到相应的今天资源路径-->
<mvc:default-servlet-handler/>

【五、applicationContext-mybatis.xml配置】
1、把SqlSessionFactory作为Bean交给Spring来管理

<!--把SqlSessionFactory作为bean交给Spring来管理-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!--创建SqlSessionFactory需要数据源-->
        <property name="dataSource" ref="dataSource"/>

        <!--mybatis核心配置文件路径-->
        <property name="configLocation" value="classpath:mybatis/mybatis-config.xml"/>

        <!--注入映射文件路径-->
        <property name="mapperLocations" value="classpath:mybatis/mapper/**/*.xml"/>

        <!--注入别名实体类所在的包-->
        <property name="typeAliasesPackage"value="travel.domain"/>
    </bean>在这里插入代码片

2、把mapper接口交给spring来管理

<!--把mapper接口交给spring来管理-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

        <!--mapper文件的基包-->
        <property name="basePackage " value="travel.mapper"/>
    </bean>

【六、在resource目录下新建mybatis包,在其包下新建mybatis-config.xml配置文件】

<settings>
    <!-- 开启驼峰匹配:完成从经典的数据库列名(下划线)到驼峰式属性的映射 -->
    <setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>

【七、在mybatis包下创建mapper.xml】
存放映射文件

【八、在spring下创建applicationContext-tx.xml存放事物配置相关】
1、配置事物管理器
2、配置事物的属性
3、配置AOP切面告诉spring哪些地方要加事物,


    <!--class=表名是基于数据源的事物管理器-->
    <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:config>
        <!--切入点表达式-->
        <aop:pointcut id="pt" expression="execution(* travel.service.impl.*.*(..))"/>
        <!--把以上的事物规则应用到切入点上-->
        <aop:advisor advice-ref="txAdvice" pointcut-ref="pt"/>
    </aop:config>

【九、在resources下引入日志】

### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### direct messages to file mylog.log ###
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=c:/mylog.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### set log levels - for more verbose logging change 'info' to 'debug' ###

log4j.rootLogger=debug, stdout

【十、将编译插件放在SSM的父工程pom文件中】

 <!--jdk编译插件-->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.2</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
          <encoding>utf-8</encoding>
        </configuration>
      </plugin>

【十一、标签和的不同】
dependencymanagement是对版本和依赖进行集中管理,
为了项目的正确运行,必须让所有的子模块使用依赖项的统一版本,必须确保应用的各个项目的依赖项和版本一致,才能保证测试的和发布的是相同的结果。Maven会沿着父子层次向上走,直到找到一个拥有dependencyManagement元素的项目,然后它就会使用在这个dependencyManagement元素中指定的版本号。

dependencyManagement里只是声明依赖,并不实现引入,因此子项目需要显式的声明需要用的依赖。如果不在子项目中声明依赖,是不会从父项目中继承下来的;只有在子项目中写了该依赖项,并且没有指定具体版本,才会从父项目中继承该项,如果子项目中指定了版本号,那么会使用子项目中指定的jar版本。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值