一、基于@Component注解的配置
Spring 2.5 中除了提供 @Component 注释外,还定义了几个拥有特殊语义的注释,它们分别是:@Repository、@Service 和 @Controller。
在目前的 Spring 版本中,这 3 个注释和 @Component 是等效的,但是从注释类的命名上,很容易看出这 3 个注释分别和持久层、业务层和控制层(Web 层)相对应。
虽然目前这3 个注释和 @Component 相比没有什么新意,但 Spring 将在以后的版本中为它们添加特殊的功能。所以,如果 Web 应用程序采用了经典的三层分层结构的话,最好在持久层、业务层和控制层分别采用上述注解对分层中的类进行注释。
1、@controller 控制器(注入服务)
2、@service 服务(注入dao)
3、@repository dao(实现dao访问)
4、@component (把普通pojo实例化到spring容器中,相当于配置文件中的<bean id="" class=""/>)
@component用法如下:
在类上使用@Component注解,表示该类定义为Spring管理Bean,使用默认value(可选)属性表示Bean标识符。
相当于:
@Component,@Service,@Controller,@Repository注解的类,并把这些类纳入进spring容器中管理。
下面写这个是引入component的扫描组件
其中base-package为需要扫描的包(含所有子包)
@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
二、使用实例
User.java:用@Repository注解
UserDao.java
UserDaoImp.java:用@Controller注解
UserService.java:用@Service注解
beans.xml'
测试下:
结果:
当在组件类中使用了特定的注解之后,还需要在Spring的配置文件中声明 <context:component-scan>:
- base-package属性指定一个需要扫描的基类包,Spring容器将会扫描整个基类包里及其子包中的所有类
- 当需要扫描多个包时,可以使用逗号分隔
- 如果仅希望扫描特定的类而非基包下的所有类,可使用resource-pattern属性过滤特定的类,实例:
- <context:include-filter>子节点表示要包含的目标类
- <context:exclude-filter>子节点表示要排除在外的目标类
- <context:component-scan>下可以拥有若干个<context:include-filter>和<context:exclude-filter>子节点
- <context:include-filter>和<context:exclude-filter>子节点支持多种类型的过滤表
三、更多的配置元数据
1、@Lazy:定义Bean将延迟初始化,使用方式如下:
使用@Lazy注解指定Bean需要延迟初始化。
2、@DependsOn:定义Bean初始化及销毁时的顺序,使用方式如下:
3、@Scope:定义Bean作用域,默认单例,使用方式如下:
4、@Qualifier:指定限定描述符,对应于基于XML配置中的<qualifier>标签,使用方式如下:
可以使用复杂的扩展,如@Mysql等等。
5、@Primary:自动装配时当出现多个Bean候选者时,被注解为@Primary的Bean将作为首选者,否则将抛出异常,使用方式如下:
相关推荐
使用spring-mvc 注解方式 注入 Controller 控制器 访问路径 精确到方法名 无需 多余注解 简单方便 附带实例
Java-Spring各种依赖注入注解的区别.doc
这些新特性包括:注解驱动的依赖性注入(annotation-driven dependency injection),使用注解而非XML元数据来自动侦测classpath上的Spring组件,注解对生命周期方法的支持,一个新的web控制器模型将请求映射到加...
Spring依赖注入——java项目中使用spring注解方式进行注入.rar
java注解原始代码弹簧框架1 在这个项目中,我使用注释和Java代码配置创建了Spring项目。 运行应用程序 步骤1.安装Tomcat服务器并将其与IDE连接 第2步。添加lib文件夹中的Jar文件- Right click on Main project -> ...
@Autowired:Spring提供的注解 @Inject:JSR-330提供的注解 @Resource:JSR-250提供的注解 Java配置 @Configuration声明当前类是一个配置类 @Bean注解在方法上,声明当前方法的返回值为一个...
-- ②:启动Spring MVC的注解功能,完成请求和注解POJO的映射 --> <bean class="org.springframework.web.servlet.mvc.annotation. AnnotationMethodHandlerAdapter"/> <!-- ③:对模型视图名称的解析,即在模型...
使用 Valid 注解做参数校验,并统一处理校验不通过的异常 使用 lombok 简化开发 使用 Swagger 自动化 API 文档 REST 接口统一返回 ResultBean 通过构造器注入 单元测试 启动方式 下载源码: git clone ...
综合运用Java反射、泛型和注解实现的类似Spring的核心注入
2,使编码变得简单,SpringBoot采用 JavaConfig的方式对Spring进行配置,并且提供了大量的注解,极大的提高了工作效率,比如@Configuration和@bean注解结合,基于@Configuration完成类扫描,基于@bean注解把返回值...
2. Spring 2.0 的新特性 2.1. 简介 2.2. 控制反转(IoC)容器 2.2.1. 更简单的XML配置 2.2.2. 新的bean作用域 2.2.3. 可扩展的XML编写 2.3. 面向切面编程(AOP) 2.3.1. 更加简单的AOP XML配置 2.3.2. 对@AspectJ 切面的...
春天Zeebe 该项目允许在您的Spring或Spring Boot环境中轻松利用Zeebe。...现在,您可以注入ZeebeClient并对其进行处理,例如创建新的工作流实例: @Autowired private ZeebeClient client; 部署工作流程模型 使用@Zee
简述java注解功能及用法,有代码示例。看起来还成,比较简单,学spring注入的时候要用到注解注入的话,本书属于必看版。
本文是我在业余时间学习spring注解注入之后的整理总结,希望能给对spring注入技术感兴趣和正在学习spring注入的同学们一些帮助。文中的内容都是我自己的摸索总结,当中难免会有偏差和错误,希望spring达人能够及时...
使用@Autowired(required = false)时,即便找不到Bean也不会报错该注解通常和@Autowired一起使用,可以当作ByName注入B
本文是我在业余时间学习spring注解注入之后的整理总结,希望能给对spring注入技术感兴趣和正在学习spring注入的同学们一些帮助。文中的内容都是我自己的摸索总结,当中难免会有偏差和错误,希望spring达人能够及时...
这个项目是关于Spring依赖注入的。 我们正在创建一个Maven项目。 我们在pom.xml文件中包含spring-context.jar。 然后我们创建并设计beans.xml文件。 我们运行最新的项目 2-弹簧框架依赖项注入示例 这个项目是关于...
retrofit-sample 演示 通过retrofit-starter搭建的环境调用 User服务的添删改查以及上传,以及retrofit-starter的诸多特性,例如: 自定义注入OkHttpClient 注解式拦截器 连接池管理 日志打印 请求重试 错误解码器 ...
2,使编码变得简单,SpringBoot采用 JavaConfig的方式对Spring进行配置,并且提供了大量的注解,极大的提高了工作效率,比如@Configuration和@bean注解结合,基于@Configuration完成类扫描,基于@bean注解把返回值...
2.写spring、springmvc、mybatis的配置文件 2.1 spring配置文件,约束,哪里来? 源码中可以找sxd约束文件,这个的话我在 E:\2017下学期\spring-framework-5.0.5.RELEASE-dist\spring-framework-5.0.5.RELEASE\...