当前位置: 首页 > news >正文

网站建设的步骤过程ppt淄博网站建设公司哪家好

网站建设的步骤过程ppt,淄博网站建设公司哪家好,期货贵金属网站建设,广告平台投放广告1.相同点 Resource和Autowired这两个注解的作用都是在Spring生态里面去实现Bean的依赖注入 2.不同点 2.1 Autowired 首先,Autowired是Spring里面提供的一个注解,默认是根据类型来实现Bean的依赖注入。 Autowired注解里面有一个required属性默认值是t…

1.相同点

@Resource和@Autowired这两个注解的作用都是在Spring生态里面去实现Bean的依赖注入

2.不同点

2.1 @Autowired

首先,@Autowired是Spring里面提供的一个注解,默认是根据类型来实现Bean的依赖注入。
@Autowired注解里面有一个required属性默认值是true,表示强制要求bean实例的注入,在应用启动的时候,如果IOC容器里面不存在对应类型的Bean,就会报错。当然,如果不希望自动注入,可以把这个属性设置成false。

@Controller
public class HelloController {@Autowired(required = true)private HelloService helloService;@ResponseBody@RequestMapping("/hello")public String hello() {return helloService.hello();}
}

但是当项目有多个相同类型的Bean被定义时,使用@Autowired会报错

@org.springframework.context.annotation.Configuration
public class Configuration {@Bean("hello1")public HelloService hello1() {return new HelloServiceImpl();}@Bean("hello2")public HelloService hello2() {return new HelloServiceImpl();}
}

所以Spring启动的时候,会提示一个错误,大概意思原本只能注入一个单实例Bean,但是在IOC容器里面却发现有多个,导致注入失败。

Field helloService in com.zte.helloworld.contorller.HelloController required a single bean, but 3 were found:- helloServiceImpl: defined in file [D:\JavaWorkSpace\code\helloworld\target\classes\com\zte\helloworld\service\impl\HelloServiceImpl.class]- hello1: defined by method 'hello1' in class path resource [com/zte/helloworld/config/Configuration.class]- hello2: defined by method 'hello2' in class path resource [com/zte/helloworld/config/Configuration.class]Action:
Consider marking one of the beans as @Primary, updating the consumer to accept multiple beans, or using @Qualifier to identify the bean that should be consumed

针对这个问题,我们可以使用 @Primary或者@Qualifier这两个注解来解决。
@Primary表示主要的bean,当存在多个相同类型的Bean的时候,优先使用声明了@Primary的Bean。
@Qualifier的作用类似于条件筛选,它可以根据Bean的名字找到需要装配的目标Bean。

@Controller
public class HelloController {@Autowired(required = true)@Qualifier("hello1")private HelloService helloService;@ResponseBody@RequestMapping("/hello")public String hello() {return helloService.hello();}
}

2.2 @Resource

@Resource是JDK提供的注解,只是Spring在实现上提供了这个注解的功能支持。
它的使用方式和@Autowired完全相同,最大的差异于@Resource可以支持ByName和ByType两种注入方式。
如果使用name,Spring就根据bean的名字进行依赖注入,如果使用type,Spring就根据类型实现依赖注入。
如果两个属性都没配置,就先根据定义的属性名字去匹配,如果没匹配成功,再根据类型匹配。两个都没匹配到,就报错。

@Controller
public class HelloController {//    @Autowired(required = true)
//    @Qualifier("hello1")
//    private HelloService helloService;@Resource(name = "helloService01")private HelloService01 helloService01;@Resource(type = HelloService02.class)private HelloService02 helloService02;@ResponseBody@RequestMapping("/hello")public String hello() {return helloService02.hello();}
}

3.总结

  • @Autowired是根据type来匹配,@Resource可以根据name和type来匹配,默认是name匹配。
  • @Autowired是Spring定义的注解,@Resource是JSR 250规范里面定义的注解,而Spring对JSR 250规范提供了支持。
  • @Autowired如果需要支持name匹配,就需要配合@Primary或者@Qualifier来实现。
http://www.yayakq.cn/news/783593/

相关文章:

  • 葫芦岛公司做网站电商网站建设哪家公司好
  • 北京迈程网络网站建设公司如何自己建网站服务器
  • 开一家网络公司做网站前景如何高端的扬中网站建设
  • 自己做网站要多少钱大连建设网水电费查询官网
  • 淘宝客怎么在网站做推广网站建设代码介绍
  • 南沙区交通和建设局网站婚纱网站设计首页
  • 学前端要逛那些网站门户型网站建设方案
  • 大兴快速网站建设哪家好wordpress 积分集成
  • 厂 网站 南宁阿里云智能建站
  • 网站建设过程论文软件研发项目管理系统
  • 网站开发技术知识住房和城乡建设部的网站
  • 保山公司做网站广州seo优化外包公司
  • 自己做的网站被举报违反广告法你去湖北省住房城乡建设厅网站查
  • 看网站是不是WP做的wordpress保存php失败
  • 购物网站优化方案如何快速做一个网站
  • 辽阳太子河网站建设成都招聘网站建设
  • 如何制作导航网站上海招聘网最新招聘2023
  • 电商网站建设与运维需要的软件淘宝的17种免费推广方法
  • 温州网络有限公司无锡 网站 seo 优化
  • 哔哩哔哩网站建设分析金水郑州网站建设
  • 狮山网站设计熊掌号wordpress
  • 做搜索的网站有哪些科技小论文500字范文
  • 织梦中查看演示网站怎么做什么主题 wordpress
  • 白酒企业网站源码网络销售怎么聊客户
  • 广州 网站设计wordpress登录404
  • 深圳网站创建公司怎样查询网站建设时间
  • 全站仪建站视频网站开发属于什么软件
  • vue cdn做的网站做照片书的模板下载网站好
  • 网站源码和模板的区别济南市建设信用网站
  • 如何帮客户做网站长春专业网站建设推广费用