简单了解Spring Bean常用注解的装配
这篇文章主要介绍了简单了解Spring Bean常用注解的装配,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
基于注解的装配
在Spring框架中,尽管使用XML配置文件可以很简单地装配Bean,但如果应用中有大量的Bean需要装配,会导致XML配置文件过于庞大,不方便以后的升级与维护,因此更多的时候推荐开发者使用注解(annotation)的方式去装配Bean。
在Spring框架中定义了一系列的注解,下面介绍集中常用的注解。
@Component
该注解是一个泛化的概念,仅仅表示一个组件对象(Bean),可以作用在任何层次上。
@Repository
该注解用于将数据访问层(DAO)的类标识为Bean,即注解数据访问层Bean,其功能与@Component相同。
@Service
该注解用于标注一个业务逻辑组件类(Service层),其功能与@Component相同。
@Controller
该注解用于标注一个控制器组件类(Spring MVC的Controller),其功能与@Component相同。
@Autowired
该注解可以对类成员变量、方法及构造方法进行标注,完成自动装配的工作。通过使用@Autowired来消除setter和getter方法。默认按照Bean的类型进行装配。
@Resource
该注解与@Autowired的功能一样,区别在于该注解默认是按照名称来装配注入的,只有当找不到与名称匹配的Bean时才会按照类型来装配注入;而@Autowired默认按照Bean的类型进行装配,如果想按照名称来装配注入,则需要和@Qualifier注解一起使用。
@Qualifier
该注解与@Aitowired注解配合使用。当@Autowired注解需要按照名称来装配注入时需要和该注解一起使用,Bean的实例名称由@Qualifier注解的参数制定。
在上面几个注解中,虽然@Repository、@Service和@Controller等注解的功能与@Component注解相同,但为了使类的标注更加清晰(层次化),在实际开发中推荐使用@Repository标注数据访问层(DAO层)、使用@Service标注业务逻辑层(Service层)、使用@Controller标注控制器层(控制层)。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
Spring注解@Resource和@Autowired区别对比详解
前言 @Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但是Spring支持该注解的注入. 1.共同点 两者都可以写在字段和setter方法上.两者如果都写在字段上,那么就不需要再写setter方法. 2.不同点 (1)@Autowired @Autowired为Spring提供的注解,需要导入包org.springframework.beans.factory
-
Spring常用注解及自定义Filter的实现
@Configuration通常用在配置类上,告诉spring这是一个配置类(配置类类似配置文件,区别在于用类的形式来表现xml: @Service用于标注业务层组件service层, @Controller用于标注控制层组件(如struts中的action) , @Repository用于标注数据访问组件,即DAO组件, @component把普通pojo实例化到spring容器中,相当于配置文件中的 <bean id="" class=""/> 使用
-
浅谈Spring自定义注解从入门到精通
在业务开发过程中我们会遇到形形色色的注解,但是框架自有的注解并不是总能满足复杂的业务需求,我们可以自定义注解来满足我们的需求.根据注解使用的位置,文章将分成字段注解.方法.类注解来介绍自定义注解 字段注解 字段注解一般是用于校验字段是否满足要求,hibernate-validate依赖就提供了很多校验注解 ,如@NotNull.@Range等,但是这些注解并不是能够满足所有业务场景的.比如我们希望传入的参数在指定的String集合中,那么已有的注解就不能满足需求了,需要自己实现. 自定义注解 定
-
Spring @Bean vs @Service注解区别
今天跟同事讨论了一下在Spring Boot中,是使用@Configuration和@Bean的组合来创建Bean还是直接使用 @Service等注解放在类上的方式.笔者倾向于使用第一种,即@Configuration和@Bean的组合. 先来看一个例子,目标是创建SearchService的一个Bean. 直接使用@Service的方式: // SearchService.java package li.koly.search; import java.util.List; public in
-
springboot使用@data注解减少不必要代码
一.idea安装lombok插件 二.重启idea 三.添加maven依赖 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.10</version> </dependency> 四.书写一个实体类 import lombok.Data; @Data public cla
-
Java之Spring注解配置bean实例代码解析
前面几篇均是使用xml配置bean,如果有上百个bean,这是不可想象的.故而,请使用注解配置bean !!! [1]注解类别 @Component : 基本注解, 标识了一个受 Spring(点击这里可以下载<Spring应用开发完全手册>) 管理的组件 @Repository : 标识持久层组件 @Service : 标识服务层(业务层)组件 @Controller : 标识表现层组件 Spring 能够从 classpath 下自动扫描, 侦测和实例化具有特定注解的组件. 对于扫描到的组
-
java @Profile注解详解
@Profile注解详解 @Profile:Spring为我们提供的可以根据当前环境,动态的激活和切换一系列组件的功能: 开发环境develop.测试环境test.生产环境master 数据源:(/dev) (/test) (/master) @Profile:指定组件在哪个环境的情况下才能被注册到容器中,不指定,任何环境下都能注册这个组件 1) 加了环境标识的bean,只有这个环境被激活的时候才能注册到容器中.默认是default环境 2) 写在配置类上,只有是指定的环境的时候,整个配置类里面
-
Spring启动后获取所有拥有特定注解的Bean实例代码
本文研究的主要是Spring启动后获取所有拥有特定注解的Bean,具体如下. 最近项目中遇到一个业务场景,就是在Spring容器启动后获取所有的Bean中实现了一个特定接口的对象,第一个想到的是ApplicationContextAware,在setApplicationContext中去通过ctx获取所有的bean,后来发现好像逻辑不对,这个方法不是在所有bean初始化完成后实现的,后来试了一下看看有没有什么Listener之类的,发现了好东西ApplicationListener,然后百度一
-
简单了解Spring Bean常用注解的装配
这篇文章主要介绍了简单了解Spring Bean常用注解的装配,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 基于注解的装配 在Spring框架中,尽管使用XML配置文件可以很简单地装配Bean,但如果应用中有大量的Bean需要装配,会导致XML配置文件过于庞大,不方便以后的升级与维护,因此更多的时候推荐开发者使用注解(annotation)的方式去装配Bean. 在Spring框架中定义了一系列的注解,下面介绍集中常用的注解. @Compon
-
Spring Bean常用的的装配方式详解
Bean常用的装配方式有3种: 基于xml的装配 基于Annotation(注解)的装配 基于Java配置类的装配 基于xml的装配 在xml文件中配置Bean. 如果依赖很多,xml配置文件会很臃肿,后期维护.升级不方便.自动装配可解决这一问题. 基于xml的自动装配 在<bean>中使用autowired属性完成依赖的自动装配,不再使用<property>手动注入setter方法中的依赖,简化了配置,减少了xml中的代码量. autowire属性的属性值: no 不使用自动装配
-
简单了解Spring中常用工具类
文件资源操作 Spring 定义了一个 org.springframework.core.io.Resource 接口,Resource 接口是为了统一各种类型不同的资源而定义的,Spring 提供了若干 Resource 接口的实现类,这些实现类可以轻松地加载不同类型的底层资源,并提供了获取文件名.URL 地址以及资源内容的操作方法 访问文件资源 * 通过 FileSystemResource 以文件系统绝对路径的方式进行访问: * 通过 ClassPathResource 以类路径的方式进行
-
详解Spring bean的注解注入之@Autowired的原理及使用
一.@Autowired 概念: @Autowired 注释,它可以对类成员变量.方法及构造函数进行标注,完成自动装配的工作. 通过 @Autowired的使用来消除 set ,get方法. 在使用@Autowired之前,我们对一个bean配置起属性时,用的是 <property name="属性名" value=" 属性值"/> 使用@Autowired之后,我们只需要在需要使用的地方使用一个@Autowired 就可以了. 代码使用: public
-
Spring IOC 常用注解与使用实例详解
目录 @Component @Autowired @Qualifier @Bean @ImportResource @Profile @PropertySource @Component 注解@component代表spring ioc 会把这个类扫描生成Bean实例 @Component public class Role{ @Value("1") private Long id; @Value("role_name_1") private String role
-
简单了解spring bean作用域属性singleton和prototype的区别
这篇文章主要介绍了简单了解spring bean作用域属性singleton和prototype的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.singleton 当一个bean的作用域设置为singleton, 那么Spring IOC容器中只会存在一个共享的bean实例,并且所有对bean的请求,只要id与该bean定义相匹配,则只会返回bean的同一实例. 换言之,当把一个bean定义设置为singleton作用域时,Sprin
-
Spring中常用注解的详细介绍
spring中使用注解时配置文件的写法: <?xml version="1.0" encoding="UTF-8"?> <span style="font-size:18px;"><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-in
-
Spring Bean管理注解方式代码实例
1.使用注解的方式需要配置applicationContext.xml: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context=&qu
-
spring mvc常用注解_动力节点Java学院整理
Spring从2.5版本开始在编程中引入注解,用户可以使用@RequestMapping, @RequestParam, @ModelAttribute等等这样类似的注解.到目前为止,Spring的版本虽然发生了很大的变化,但注解的特性却是一直延续下来,并不断扩展,让广大的开发人员的双手变的更轻松起来,这都离不开Annotation的强大作用,今天我们就一起来看看Spring MVC 4中常用的那些注解吧. 1. @Controller Controller控制器是通过服务接口定义的提供访问应用
-
简单了解spring bean的循环引用
看过一次spring公开课,记录一下bean的循环引用问题. 问题: public class IndexService{ @Autowired IndexDao indexDao; } public class IndexDao{ @Autowired IndexService indexService; } 以上的实例中IndexService依赖IndexDao,IndexDao中依赖IndexService. spring在bean的实例化过程: 先去创建IndexDao bean, 1
随机推荐
- linux 中ls命令详解
- Web Inspector:关于在 Sublime Text 中调试Js的介绍
- 文件名修改的批处理
- Android编程实现获取系统内存、CPU使用率及状态栏高度的方法示例
- 浅谈servlet3异步原理与实践
- iOS消息远程推送通知
- 用JS得到字符串中出现次数最多的字母
- 用JavaScript获取页面文档内容的实现代码
- es6学习之解构时应该注意的点
- PHP基于Closure类创建匿名函数的方法详解
- 珊瑚虫IP库浅析
- python求列表交集的方法汇总
- Android Studio使用教程(五):Gradle命令详解和导入第三方包
- javascript入门·图片对象(无刷新变换图片)\滚动图像
- ASP脚本的执行顺序详细说明
- Java求s=a+aa+aaa+aaaa+aa...a 5个数相加的值
- ubuntu上配置Nginx+PHP5 FastCGI服务器配置
- 详解jQuery插件开发方式
- Bootstrap每天必学之轮播(Carousel)插件
- document.getElementById为空或不是对象的解决方法