• 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>

     

     

      

  • 相关阅读:
    软件设计师 -算法设计与分析
    windows下git使用
    SourceTree免注册并连码云
    软件设计师-软件工程基础知识
    基本约瑟夫环问题详解
    SGU180(树状数组,逆序对,离散)
    POJ(1195)(单点修改,区间查询)(二维)
    C++ bitset
    冯志远0920
    怎样学好哲学(lucas+费马小定理)
  • 原文地址:https://www.cnblogs.com/lmmblogs/p/7840285.html
Copyright © 2020-2023  润新知