spring中基于注解创建bean对象

spring中创建bean对象可以使用xml或者注解,一般来说使用注解会方便些。

使用注解前,先要将xml配置文件中的约束添加完整

约束内容我会放在最下面。其中有个标签<context:component-scan>这个标签会在所写包内搜索所有有注解的bean对象进行解析。

配置完xml,就可以在bean类上写注解了。

注解有四种:1、创建bean对象的注解。2、用于注入数据的注解。3、用于改变作用范围的注解。4、和生命周期有关的注解。

一、用于创建bean对象的注解:

这种注解有四种Component、Controller、Service和Repository

其中Component是通用注解,参数为value,value为此bean的名字可不写,默认为第一个字母为小写的类名。

Controller、Service和Repository是Component的子类,本质无大区别,方便阅读。一般Controller用于表现层,Service用于业务层,Repository用于持久层。

 

二、用于注入数据的注解

用于注入数据的注解有三种:1、AutoWired。2、Qualifier。3、Resource。

1:AutoWired。此注解用于属性自动注入,

注入步骤为(以上图为例):首先在容器中寻找已经存在的IAccountDao或其子类的对象,如果已存在一个且只有一个的情况下会自动将此类对象赋值给accountDao。如果已存在两个及以上IAccountDao或其子类的对象时spring会寻找名为accountDao的对象,如有则赋值,没有则抛出异常。

故AutoWired只能在只有一个同类型bean类或名称相同时使用。

2:Qualifer。此注解在对方法使用时可单独使用,但是在对类对象注入时必须和AutoWired一并使用

有一参数为value,注入时会去寻找id为accountDaoImpl2的对象进行赋值。

 

3:Resource。此注解可单独使用,有一参数为name,name指定bean的id进行注入

 

三、用于改变bean作用范围的注解

改变bean作用范围的注解为Scope,参数为value,可选属性为1、singleton。2、prototype。

singleton为单例模式,prototype为多例模式。

singleton模式下,bean对象在读取完配置文件后出生,并只有一个,在程序结束(最后一个前台进程结束)后消亡。

prototype模式下,bean对象在获取对象时出生,可以有多个,什么时候消亡则由java垃圾回收机制判断。


四、和生命周期有关的注解

和生命周期有关的注解有两个1、init-method。2、destory-method。

此注解下的方法会分别在出生和消亡时被调用。

 

配置好bean后就可以使用了,首先使用ApplicationContext读取配置,然后就可以获取bean对象使用了。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Spring,我们可以使用注解来配置和装配Bean,这可以使我们的代码更加简洁和易于维护。下面是关于如何基于注解配置和装配Bean的一些简要介绍: 1. 基于注解配置Bean 在Spring,我们可以使用以下注解来配置Bean: - @Component:表示该类是一个Spring Bean,需要被Spring容器管理。 - @Service:表示该类是一个服务层的Bean。 - @Controller:表示该类是一个控制层的Bean。 - @Repository:表示该类是一个数据访问层的Bean。 这些注解都是基于@Component注解的衍生注解,它们的作用是更加明确地表示Bean的角色。我们可以在Bean类上添加这些注解,告诉Spring容器该类需要被管理。例如: ``` @Service public class UserService { // ... } ``` 2. 基于注解装配Bean 在Spring,我们可以使用以下注解来装配Bean: - @Autowired:自动装配Bean。 - @Qualifier:指定具体的Bean名称进行装配。 - @Resource:指定具体的Bean名称进行装配,与@Qualifier类似。 - @Value:注入一个具体的值。 使用@Autowired注解进行自动装配时,Spring会自动在容器寻找与该类型匹配的Bean,并将其注入到类的属性。例如: ``` @Service public class UserService { @Autowired private UserDao userDao; // ... } ``` 使用@Qualifier或@Resource注解可以指定具体的Bean名称进行装配。例如: ``` @Service public class UserService { @Autowired @Qualifier("userDaoImpl") private UserDao userDao; // ... } ``` 使用@Value注解可以注入一个具体的值。例如: ``` @Service public class UserService { @Value("10") private int maxCount; // ... } ``` 以上就是关于Spring基于注解配置和装配Bean的简要介绍,希望能对您有所帮助。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值