SSM回顾注意事项一

1、配置文件

扫描包相关

<context:component-scan base-package="com.xxx,com.yyy"/>
  • 可以用逗号隔开扫描多个包;
  • 如果像扫描本包下所有的service子包(这些service子包有不同的父包),可以如下配置:
<context:component-scan base-package="com.a.**.service"/>
  • context:component-scan默认开启了<context:annotation-config/>,所以不用再手动设置了;
  • context:component-scan开启后会扫描base-package包及其子包,如果扫描到有@Component、@Controller、@Service等注解的类,则把这些类注册为bean;
2、Spring加载properties配置文件

不管是spring.xml、spring-mvc.xml还是spring-mybatis.xml,如果要加载properties配置文件,都要添加下面这写配置:

<bean id="properties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
        <property name="locations">
            <list>
            	<!-- 可以自行修改 -->
                <value>classpath:*.properties</value>
            </list>
        </property>
    </bean>
    <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="properties" ref="properties"/>
    </bean>
3、SpringMVC配置文件相关
  • <mvc:annotation-driven />,设置此配置后,Spring就知道了我们启用注解驱动,然后iSpring会根据<context:component-scan/>配置将被扫描到的符合条件的组件注册到工厂中来处理我们的请求;
  • 如果在web.xml中配置的SpringMVC如下:
<servlet-mapping>
    <servlet-name>SpringMVC</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

上面的配置会导致所有的请求都交给SpringMVC处理,包括静态文件,则在SpringMVC的配置文件中必须设置<mvc:annotation-driven />,否则DispatcherServlet会无法分清请求是静态资源还是MVC的注解从而导致 controller报404错误;

  • <mvc:default-servlet-handler/>,开启此配置后,会在Spring MVC上下文中定义一个org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler,它会像一个检查员,对进入DispatcherServlet的URL进行筛查,如果发现是静态资源的请求,就将该请求转由Web应用服务器默认的Servlet处理,如果不是静态资源的请求,才由DispatcherServlet继续处理;
4、SpringMVC整合json

导入需要的json包后,在SpringMVC配置文件中添加如下配置:

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
        <property name="messageConverters">
            <list>
                <ref bean="jsonHttpMessageConverter" />
            </list>
        </property>
    </bean>

    <bean id="jsonHttpMessageConverter"
          class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
        <property name="supportedMediaTypes">
            <list>
                <value>application/json;charset=UTF-8</value>
            </list>
        </property>
    </bean>
5、在SpringMVC配置文件中开启拦截配置
    <!-- 
        如果有多个拦截器满足拦截处理的要求,则依据配置的先后顺序来执行
     -->
    <mvc:interceptors>
        <mvc:interceptor>
            <!-- 拦截所有的请求,这个必须写在前面,也就是写在【不拦截】的上面 -->
            <mvc:mapping path="/**" />
            <!-- 但是排除下面这些,也就是不拦截请求 -->
            <mvc:exclude-mapping path="/login.html" />
            <mvc:exclude-mapping path="/account/login.do" />
            <mvc:exclude-mapping path="/account/regist.do" />
            <!-- 自定义的拦截器 -->
            <bean class="com.msym.cloudnote.interceptors.MyInterceptor" />
        </mvc:interceptor>
    </mvc:interceptors>

自定义拦截器要实现HandlerInterceptor 接口,重写preHandle、postHandle和afterCompletion方法,preHandle在业务处理器处理请求之前被调用如果preHandle返回false,则请求不再往下处理、postHandle在业务处理器处理请求执行完成后,生成视图之前执行、afterCompletion在DispatcherServlet完全处理完请求后被调用,可用于清理资源等 ,afterCompletion()执行完成后开始渲染页面。

6、spring-mybatis.xml配置步骤

①、如需要开启事务,则添加如下配置:

<!--开启事务-->
<tx:annotation-driven/>

②、如需要加载配置文件,则可参考品上述问题2;

③、配置数据源的bean,设置id为dataSource;

④、Spring与Mybatis整合,引入数据源,并配置扫描XXXMapper.xml文件,参考下面例子:

<!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <!-- 自动扫描mapping.xml文件 -->
        <property name="mapperLocations">
            <array>
                <value>classpath:mapping/*.xml</value>
            </array>
        </property>
        <!-- 如果有分页插件可以在此处进行配置 -->
    </bean>

⑤、扫描DAO接口,并将sqlSessionFactory引入,如下示例:

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="com.a.dao"/>
    <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
</bean>

⑥、开启事务,并添加dataSource,如下示例:

<!-- (事务管理)transaction manager, use JtaTransactionManager for global tx -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>
7、web.xml配置解析

①、欢迎界面

<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

②、配置Spring配置文件路径

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath*:META-INF/spring/spring.xml</param-value>
</context-param>

③、添加ContextLoaderListener配置

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

上述配置简单来说就是自动装配spring.xml的配置信息,初始化IOC;

④、配置SpringMVC 核心控制器 DispatcherServlet
示例:

<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*:META-INF/spring/spring-mvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
</servlet>
<!-- 拦截设置 -->
<servlet-mapping>
        <servlet-name>SpringMVC</servlet-name>
        <url-pattern>/</url-pattern>
</servlet-mapping>

有关web.xml配置的详细信息参考:
ssm框架中,项目启动过程以及web.xml配置详解

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值