spring注解@rvice(rvice)括号中的rvice有什么用

更新时间:2023-05-29 15:55:48 阅读: 评论:0

spring 注解@rvice (rvice )括号中的rvice 有什么⽤rvice  是有⽤的相当于 xml 配置中得bean  id = rvice  也可以不指定 不指定相当于 bean id =  com. rvice.rvice 就是这个类的全限定名,表⽰给当前类命名⼀个别名,⽅便注⼊到其他需要⽤到的类中;不加的话,默认别名就是当前类名,但是⾸字母⼩写
注⼊⽅式:
把DAO 实现类注⼊到rvice 实现类中,把rvice 的接⼝(注意不要是rvice 的实现类)注⼊到action 中,注
⼊时不要new 这个注⼊的类,因为spring 会⾃动注⼊,如果⼿动再new 的话会出现错误,然后属性加上
@Autowired 后不需要getter()和tter()⽅法,Spring 也会⾃动注⼊。⾄于更具体的内容,等对注⼊的⽅式更
加熟练后会做个完整的例⼦上来。
注解:
在 spring 的配置⽂件⾥⾯只需要加上<context:annotation-config/>和<context:component-scanba-package="需要实现注⼊的类所在包"/>,[html]
1. @Service
2. public class VentorServiceImpl implements iVentorService{
3. }
4.
5. Repository
6. public class VentorDaoImpl implements iVentorDao {
魑魅魍魉是什么意思7. }
[html]
1. getBean 的默认名称是类名(头字母⼩写),如果想⾃定义,可以@Service(“aaaaa”)这样来指定,这种bean 默认是单例的,
[html]
1. 如果想改变,可以使⽤
[html]
1. @Service(“beanName”)
[html]
1. @Scope(“prototype”)来改变。可以使⽤以下⽅式指定初始化⽅法和销毁⽅法(⽅法名任意):
[html]
1. @PostConstruct  [html]
1. public void init() {
2.  }
3.
4.  @PreDestroy
肚子隐隐作痛
5.  public void destory() {
6.  }
可以使⽤ba-package="*"表⽰全部的类。
< context:component-scan ba-package=”ic.spring”>
其中ba-package为需要扫描的包(含所有⼦包)
在接⼝前⾯标上@Autowired和@Qualifier注释使得接⼝可以被容器注⼊,当接⼝存在两个实现类的时候必须指定其中⼀个来注⼊,使⽤实现类⾸字母⼩写的字符串来注⼊,如:
火烧新野@Autowired
@Qualifier("chine")
private Man man;
否则可以省略,只写@Autowired  。
@Service服务层组件,⽤于标注业务层组件,表⽰定义⼀个bean,⾃动根据bean的类名实例化⼀个⾸写字母为⼩写的bean,
例如Chine实例化为chine,如果需要⾃⼰改名字则:@Service("你⾃⼰改的bean名")。
@Controller⽤于标注控制层组件(如struts中的action)
优秀学生申请
@Repository持久层组件,⽤于标注数据访问组件,即DAO组件
@Component泛指组件,当组件不好归类的时候,我们可以使⽤这个注解进⾏标注。
@Service
public class VentorServiceImpl implements iVentorService {
}
@Repository
public class VentorDaoImpl implements iVentorDao {
}
getBean 的默认名称是类名(头字母⼩写),如果想⾃定义,可以@Service(“aaaaa”) 这样来指定,这种春天情书
褚宏生
bean默认是单例的,如果想改变,可以使⽤@Service(“beanName”)@Scope(“prototype”)来改变。
可以使⽤以下⽅式指定初始化⽅法和销毁⽅法(⽅法名任意):
@PostConstruct
public void init() {
}
@PreDestroy
public void destory() {
}
BY  ON 2011年 06 ⽉ 02 ⽇ IN
Spring不但⽀持⾃⼰定义的@Autowired注解,还⽀持⼏个由JSR-250规范定义的注解,它们分别是@Resource、@PostConstruct以
及@PreDestroy。
@Resource的作⽤相当于@Autowired,只不过@Autowired按byType⾃动注⼊,⽽@Resource默认按 byName⾃动注⼊罢
了。@Resource有两个属性是⽐较重要的,分是name和type,Spring将@Resource注解的name属性解析为bean的名字,⽽type属性则解析为bean的类型。所以如果使⽤name属性,则使⽤byName的⾃动注⼊策略,⽽使⽤type属性时则使⽤byType⾃动注⼊策略。如果既不指定name也不指定type属性,这时将通过反射机制使⽤byName⾃动注⼊策略。
继续教育学习@Resource装配顺序
1. 如果同时指定了name和type,则从Spring上下⽂中找到唯⼀匹配的bean进⾏装配,找不到则抛出异常
2. 如果指定了name,则从上下⽂中查找名称(id)匹配的bean进⾏装配,找不到则抛出异常
3. 如果指定了type,则从上下⽂中找到类型匹配的唯⼀bean进⾏装配,找不到或者找到多个,都会抛出异常
4. 如果既没有指定name,⼜没有指定type,则⾃动按照byName⽅式进⾏装配;如果没有匹配,则回退为⼀个原始类型进⾏匹配,如果匹配则⾃动装配;
@Autowired 与@Resource的区别:
1、 @Autowired与@Resource都可以⽤来装配bean.都可以写在字段上,或写在tter⽅法上。
2、 @Autowired默认按类型装配(这个注解是属业spring的),默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为fal,如:@Autowired(required=fal),如果我们想使⽤名称装配可以结合@Qualifier注解进⾏使⽤,如下:
1@Autowired()@Qualifier("baDao")七夕是什么节日
2private BaDao baDao;
3、@Resource(这个注解属于J2EE的),默认安装名称进⾏装配,名称可以通过name属性进⾏指定,如果没有指定name属性,当注解写在字段上时,默认取字段名进⾏安装名称查找,如果注解写在tter⽅法上默认取属性名进⾏装配。当找不到与名称匹配的bean时才按照类型进⾏装配。但是需要注意的是,如果name属性⼀旦指定,就只会按照名称进⾏装配。
1@Resource(name="baDao")
2private BaDao baDao;
推荐使⽤:@Resource注解在字段上,这样就不⽤写tter⽅法了,并且这个注解是属于J2EE的,减少了与spring的耦合。这样代码看起就⽐较优雅。

本文发布于:2023-05-29 15:55:48,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/947369.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:装配   组件   注解   指定   属性   名称   默认
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图