SSM框架简要配置

Spring+Springmvc+mybatis 配置文件

1. spring配置文件

业务逻辑

 <!-- 开启注解扫描 只扫描service和dao,controller不需要spring框架去处理-->
    <context:component-scan base-package="pers.myssm">
    <!-- exclude 排除@controller -->
        <context:exclude-filter type="annotation" expression=
        "org.springframework.stereotype.Controller"/>
    </context:component-scan>

    <!--===========spring 整合 mybatis 配置完就不需要mysqlmapconfig.xml=========-->
    <!--配置连接池-->
    <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/webshop"/>
        <property name="user" value="root"/>
        <property name="password" value="root"/>
    </bean>

    <!--配置sqlsessionfactory-->
    <!-- SqlSessionFactory是MyBatis的关键对象,它是个单个数据库映射关系经过编译后的内存镜像 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
    </bean>
    
    <!--配置扫描器,将maybatis接口(dao层)的实现加入到ioc中-->
    <bean id="mapperScanner" class=
    "org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="pers.myssm.dao"/>
    </bean>

    <!--======================声明式事务管理器================-->
    <!--配置-->
    <bean id="transactionManager" class=
    "org.springframework.jdbc.datasource.DataSourceTransactionManager" >
        <!--数据源-->
        <property name="dataSource" ref="dataSource"/>
    </bean>
    <!--配置事务通知 事务如何切入-->
    <tx:advice id="txAdvice" transaction-manager="transactionManager">
        <tx:attributes>
        	<!-- 以get开头 -->
            <tx:method name="get*" read-only="true"/>
            <!-- 所有方法 -->
            <tx:method name="*" isolation="DEFAULT"/>
        </tx:attributes>
    </tx:advice>
    <!--aop增强-->
    <aop:config>
        <aop:advisor advice-ref="txAdvice"
        pointcut="execution(* pers.myssm.service.impl.*ServiceImpl.*(..))"/>
    </aop:config>

关于sqlsessionfactorybean:详见

关于 MapperScannerConfigurer:

  • MapperFactoryBean是MyBatis-Spring团队提供的一个用于根据Mapper接口生成Mapper对象的类,通过MapperFactoryBean可以配置接口文件以及注入SqlSessionfactory,从而完成一个Bean的实例化。

  • MapperScannerConfigurer是MyBatis-Spring团队提供的一种用于以自动扫描形式来配置MyBatis中映射器的类,可以通过配置包路径来自动扫描包接口生成映射器,这使得开发人员可以在编写很少代码的情况下,完成对映射器的配置,从而提高开发效率。

关于transactionManager:详见

2. springmvc配置文件

网站跳转逻辑

   <!--注解扫描 pers.myssm包下-->
   <context:component-scan base-package="pers.myssm">
   	<!-- 包含 @Controller -->
       <context:include-filter type="annotation" expression=
       "org.springframework.stereotype.Controller"/>
   </context:component-scan>

   <!--配置视图解析器 方便页面返回-->
   <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
       <property name="prefix" value="/WEB-INF/pages/"></property>
       <property name="suffix" value=".jsp"></property>
   </bean>
   
   <!-- 通过url可直接访问-->
   <mvc:view-controller path="/log" view-name="Jlogin" />
   
   <!--配置静态资源-->
   <mvc:resources mapping="/css/" location="/css/**"/>
   
   <!--处理springmvc无法处理的请求 交给tomcat-->
   <mvc:default-servlet-handler/>
   
   <!--支持jsr303 校验 -->
   <mvc:annotation-driven/>

关于 mvc:default-servlet-handler:当在web.xml 配置了前端控制器时,所有对于静态资源的请求都会被看作是一个普通的后台控制器请求,导致请求找不到而报 404 异常错误。详见

关于 mvc:annotation-driven:如果不加DispatcherServlet则无法区分请求是资源文件还是mvc的注解,而导致controller的请求报404错误。详见

3. web.xml 配置文件

  1. 配置 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>
  1. 前端控制器(如果不定义配置文件地址,需要在web同级目录下配置springmvc 配置文件名dispatcherservlet-servlet)拦截所有请求
<servlet>
		<servlet-name>dispatcherServlet</servlet-name>
		<servlet-class>
			org.springframework.web.servlet.DispatcherServlet
		</servlet-class>
		<!-- 加载配置文件 -->
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:springmvc.xml</param-value>
		</init-param>
		<!-- 启动服务器加载 --> 
		<!-- 容器是否在启动的时候就加载这个servlet(实例化并调用其init()方法)。-->
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>dispatcherServlet</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>
  1. 字符编码过滤器 CharacterEncodingFilter springmvc 4.0之后 有请求与响应属性
<filter>
		<filter-name>characterEncodingFilter</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>
		<!-- 请求响应都适用 -->
		<init-param>
			<param-name>forceRequestEncoding</param-name>
			<param-value>true</param-value>
		</init-param>
		<init-param>
			<param-name>forceResponseEncoding</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>
	<filter-mapping>
    	<filter-name>characterEncodingFilter</filter-name>
    	<url-pattern>/*</url-patterns>
  	</filter-mapping>
  1. 将post请求转为put delete请求 HiddenHttpMethodFilter 解决springmvc 不支持put和delete请求 HttpPutFormContentFilter
	<filter>
		<filter-name>hiddenHttpMethodFilter</filter-name>
		<filter-class>
			org.springframework.web.filter.HiddenHttpMethodFilter
		</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>hiddenHttpMethodFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

	<filter>
		<filter-name>HttpMethodFilter</filter-name>
		<filter-class>
			org.springframework.web.filter.HttpPutFormContentFilter
			</filter-class>
	</filter>

	<filter-mapping>
		<filter-name>HttpMethodFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

4. Servlet

Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。

菜鸟教程

5. web.xml

一般的web工程中都会用到web.xml,web.xml主要用来配置,可以方便的开发web工程。web.xml主要用来配置Filter、Listener、Servlet等。但是要说明的是web.xml并不是必须的,一个web工程可以没有web.xml文件。

关于web.xml:详见

6.依赖

​ spring mvc 依赖

  1. spring junit单元测试

  2. 日志
    slf4j 是规范 接口 ;实现是log4j 、logback等
    常用 :slf4j+logback
    slf4j logback-core logback-classic (实现slf4j接口并整合)

  3. 数据库
    驱动 mysql-connector
    连接池 c3p0

  4. dao层
    mybatis ( ibatis先出 spring提供依赖 mybatis出来后spring没有提供依赖)
    自身 mybatis
    与spring整合 mybatis-spring

  5. servlet web 依赖:jstl标签库
    standard
    jackson (ajax json)
    servlet

  6. spring 依赖

    1. 核心api
      spring-core
      spring-bean
      spring-context

    2. spring dao层依赖
      spring-jdbc
      spring-tx 事务

    3. spring web 依赖
      spring-web 启动
      spring-webmvc

    4. spring test 测试
      spring-test

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值