zoukankan      html  css  js  c++  java
  • Spring自我总结

    1、InitializingBean

      Spring设置完一个bean的合作者后,会检查bean是否实现InitializingBean接口,实现的话会调用afterPropertiesSet(InitializingBean的唯一方法)方法,将某些数据加载到缓存中(如数据字典等不经常会改变的一些数据)。

    2、<context:component-scan>使用说明

       在xml配置了这个标签后,spring可以自动去扫描base-pack下面或者子包下面的java文件,如果扫描到有@Component @Controller@Service等这些注解的类,则把这些类注册为bean。

     

      <!-- 自动扫描且只扫描@Controller -->
      <context:component-scan base-package="com.coracle" use-default-filters="false">
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
        <context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice" />
      </context:component-scan>

      use-default-filters="false"表示不要使用默认的过滤器,而使用<context:exclude-filter>。

      <context:exclude-filter>标签作用缩小扫描粒度,如上图配置只扫描所有带@Controller注解的java类,并注册成bean(use-default-filters="true"时不起作用,默认为true)。

    3、SpringMVC和Spring各自扫描自己的注解不要互相混淆

      3.1web.xml中springMVC相关部分

      <!-- Spring MVC Servlet -->
      <servlet>
        <servlet-name>springServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>/WEB-INF/spring-mvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>springServlet</servlet-name>
        <url-pattern>/</url-pattern>
      </servlet-mapping>

      3.2 mvc.xml文件中关键部分

       <!-- 开启springMVC注解支持 -->
            <mvc:annotation-driven />

      <!-- 容器默认的DefaultServletHandler用于处理所有静态内容与无RequestMapping处理的URL-->
            <mvc:default-servlet-handler/>

      <!-- 自动扫描且只扫描@Controller -->
      <context:component-scan base-package="com.coracle" use-default-filters="false">
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
        <context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice" />
      </context:component-scan>

         3.3 web.xml中spring容器关键部分   

      <!-- Spring ApplicationContext配置文件的路径,可使用通配符,用于后面的Spring Context Loader -->
      <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath*:/applicationContext.xml,classpath*:/applicationContext-shiro.xml</param-value>
      </context-param>

      

       3.4 spring-core.xml文件关键部分

      <!-- 使用annotation定义事务 -->
      <tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" /> 

      <!-- 使用annotation 自动注册bean, 并保证@Required、@Autowired的属性被注入 -->
      <context:component-scan base-package="com.coracle">
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
        <context:exclude-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice" />
      </context:component-scan>

     

     

      

  • 相关阅读:
    【响应式Web设计实践 #BOOK#】
    【JS】(+﹏+)~
    -_-#【邮件】qq邮箱不显示图片
    -_-#【Markdown】
    51Nod——N1284 2 3 5 7的倍数
    51Nod——N1118 机器人走方格
    洛谷——P1014 Cantor表
    洛谷—— P1434 滑雪
    洛谷——P1443 马的遍历
    python(24)- 面向对象进阶
  • 原文地址:https://www.cnblogs.com/lmmblogs/p/7840285.html
Copyright © 2011-2022 走看看