Spring杂谈

学习Spring了一段时间,发现东西有很多,而且看完很容易忘记,故在此逐一列出。

1.注解

@Autowired 自动装配

@Qualifier 指定装配的类型,将注入策略从byType改为了byName。例如:@Autowired @Qualifier("beanid")

@Autowired起作用必须事先在 Spring 容器中声明 AutowiredAnnotationBeanPostProcessor Bean。

<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>

同时需要指定命名空间

<beans  xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

JSR-250

@Resource

@Resource的作用相当于@Autowired,只不过@Autowired按 byType 自动注入,而@Resource默认按 byName 自动注入罢了。

@PostConstruct 和 @PreDestroy

@PostConstruct 注释的方法将在类实例化后调用,而标注了 @PreDestroy 的方法将在类销毁之前调用。可同时指定多个方法。

要让 JSR-250 的注释生效,还需要在 Spring 容器中注册一个负责处理这些注释的 BeanPostProcessor

<bean class="org.springframework.context.annotation.CommonAnnotationBeanPostProcessor"/>

<context:annotationconfig/> 将隐式地向 Spring 容器注册AutowiredAnnotationBeanPostProcessorCommonAnnotationBeanPostProcessorPersistenceAnnotationBeanPostProcessor 以及 RequiredAnnotationBeanPostProcessor 这 4 个 BeanPostProcessor。

在配置文件中使用 context 命名空间之前,必须在 <beans> 元素中声明 context 命名空间。

<beans  xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:context="http://www.springframework.org/schema/context"
  xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-2.5.xsd">

@Component

在使用 @Component注释后,Spring 容器必须启用类扫描机制以启用注释驱动 Bean 定义和注释驱动 Bean 自动注入的策略。

<context:component-scan base-package="com.baobaotao"> <context:include-filter type="regex" expression="com\.baobaotao\.service\..*"/> <context:exclude-filter type="aspectj" expression="com.baobaotao.util..*"/> </context:component-scan>
<context:component-scan/> 配置项不但启用了对类包进行扫描以实施注释驱动 Bean 定义的功能,同时还启用了注释驱动自动注入的功能
(即还隐式地在内部注册了 AutowiredAnnotationBeanPostProcessorCommonAnnotationBeanPostProcessor),因此当使用 <context:component-scan/> 后,
就可以将 <context:annotation-config/> 移除了。

默认情况下通过 @Component定义的 Bean 都是 singleton 的,如果需要使用其它作用范围的Bean,可以通过@Scope注释来达到目标

@Controller  @Service  @Repository 同 @Component

<mvc:annotation-driven/>
相当于注册了DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter两个bean,配置一些messageconverter。即解决了@Controller注解的使用前提配置。

时间: 2024-10-11 14:17:40

Spring杂谈的相关文章

Spring事务不起作用 问题汇总

Spring事务不起作用 问题汇总 博客分类: spring杂谈 java开发常见问题分析 总有很多朋友询问spring事务不起作用怎么回事,这里我汇总下,欢迎补充: 1.首先使用如下代码 确认你的bean 是代理对象吗? AopUtils.isAopProxy() AopUtils.isCglibProxy() //cglib AopUtils.isJdkDynamicProxy() //jdk动态代理 如果不是 那么就是切入点配置出错了 或者如果你使用了springmvc,可能是contex

杂谈spring、springMVC

一.背景 目前项目组都在用SSM(spring+springMVC+mybatis)开发项目 大家基本都停留在框架的基本使用阶段,对框架的职责并不清晰,导致配置文件出现了不少问题 在这简单讲解一下spring.springMVC在项目中各自负责的工作 二.spring.springMVC的关系 spring粗略可分为五个模块 1.bean容器,负责bean的创建.管理,其中包括了依赖注入功能 2.aop模块,切面编程,降低应用耦合的好方式 3.数据访问与集成,提供语义丰富的异常层(可迅速理解数据

【杂谈】Spring Boot 默认支持的并发量

Spring Boot应用支持的最大并发量是多少? Spring Boot 能支持的最大并发量主要看其对Tomcat的设置,可以在配置文件中对其进行更改.当在配置文件中敲出max后提示值就是它的默认值. 我们可以看到默认设置中,Tomcat的最大线程数是200,最大连接数是10000. 并发量指的是连接数,还是线程数? 当然是连接数. 200个线程如何处理10000条连接? Tomcat有两种处理连接的模式,一种是BIO,一个线程只处理一个连接,另一种就是NIO,一个线程处理多个连接.由于HTT

曹工杂谈:为什么很少需要改Spring源码,因为扩展点太多了,说说Spring的后置处理器

前言 最近发了好几篇,都是覆盖框架源码,但是spring的代码,我是从没覆盖过,毕竟,如果方便扩展,没谁想去改源码,而spring就是不需要改源码的那个,真的是"对扩展开放,对修改关闭"的典范. 就我说曾经用过的,spring的扩展点,就包括了listener.beanFactoryPostProcessor.beanPostProcessor,而spring boot的扩展点,除了properties.yml.java config覆盖自动配置.org.springframework

【Go语言】【17】GO语言杂谈

本章节原想进一步写并写的相关知识,但今天不在状态临时改为杂谈,原因有二 我也想静静 (参见秋裤大叔) 对前面没有涉及到的问题给一个交待 一.安装Git 当下是一个开源的时代,经常遛论坛的朋友肯定会遇到不少开源的组件.框架等,比如 前端JS有Angular 服务端框架有Spring 数据库有Cockroach DB 云计算的PaaS有Cloud Foundary 就连GO都是开源语言,谢大针对GO搞了一个Beego框架等等,不胜枚举...... 既然有这么多的开源,那总得有一个地方放这些开源代码吧

spring exception

Spring MVC异常处理SimpleMappingExceptionResolver[转] (2012-12-07 13:45:33) 转载▼ 标签: 杂谈 分类: 技术分享 Spring3.0中对异常的处理方法一共提供了两种:一种是使用HandlerExceptionResolver接口:一种是在Controller类内部使用@ExceptionHandler注解.使用第一种方式可以实现全局异常控制,并且Spring已经提供了一个默认的实现类SimpleMappingExceptionRe

Spring中&lt;ref local=&quot;&quot;/&gt;与&lt;ref bean=&quot;&quot;/&gt;区别

小 Spring中<ref local=""/>与<ref bean=""/>区别 (2011-03-19 19:21:58) 转载▼ 标签: 杂谈   <ref local="xx"/>  用"local"属性指定目标其实是指向同一文件内对应"id"属性值为此"local"值的索引"local"属性的值必须和目标bean的id属性

WebGIS开发技术杂谈

WebGIS项目的开发主要是B/S架构.最流行的是客户端javascript,服务器端java. 另外还有flex客户端. 客户端主要完成用户交互.向服务器端发送请求并传参以及组织显示服务器端返回的结果等.  服务器端则完成数据库增删查改.业务功能等. 服务器端最底层是数据层,完成对数据的增删查改.常用的数据库有oracle.mysql等.最基本的方法是, java语言使用jdbc,组织相应的sql语句实现数据库操作.   更便捷的方法是使用第三方框架,如hibernate. hibernate

开篇—杂谈WebGIS

1.前言 我相信大家对百度地图,谷歌地图等相关应用已经是非常熟悉了.通过这些应用,我们可以浏览地图.定位我们自己的位置.查找我们想知道的兴趣点.搜索交通路线等等.而其实,这些功能便是WebGIS的一些最基本的功能. 那么什么是WebGIS呢,说到这里,我还是首先给大家讲讲什么是GIS. 2.GIS简介 2.1 GIS的名词解释 GIS的全名是Geographic Information System,中文全名是地理信息系统.它是在计算机硬.软件系统支持下,对整个或部分地球表层(包括大气层)空间中