Autowired与Resource有何区别?
@Autowired与@Resource都是我们日常开发中常用的两个注解,那么它们之间究竟有何区别呢?开始讲解之前我们首先要明白一点,这个两个注解都是用来完成组件的装配的,即利用依赖注入(DI),完成对ioc容器当中各个组件之间依赖的装配赋值。@Autowired注解
来源:@Autowired为Spring提供的注解,需要导入包org.springframework.beans.factory.annotation.Autowired。
说明:@Autowired采取的默认策略为按照类型注入(by-type)。要求容器中一定要有这个类型的对象,如果没有将会报错,抛出异常。也可以通过设置可以@Autowired(required = false),来告诉容器,如果没有可以不注入。
示例:public class StudentController { @Autowired private StudentServer studentServer; }
如上代码所示,这样装配会去spring容器中找到类型为StudentServer的类,然后将其注入进来。这样会产生一个问题,当容器中有多个相同类型的对象,会造成无法选择具体注入哪一个的情况从而导致报错,这个时候我们可以通过@Qualifier("beanname"),来指定装配哪个对象。public class StudentController { @Autowired @Qualifier(name="studentServer") private StudentServer studentServer; }
@Qualifier注解会告诉spring去装配StudentServer对象。这个时候我们就可以成功注入正确的对象了。@Resource注解
来源:@Resource注解由J2EE提供,需要导入包javax.annotation.Resource。
说明:@Resource可以设置by-name(按名称)和by-type(按类型)来进行自动装配。如果没指定则默认按照ByName自动注入。
示例:public class StudentController { @Resource private StudentServer studentServer; }
没有指定name,又没有指定type,该注解会自动按照by-name方式进行装配,如果匹配则自动装配。如果没有匹配,则按照by-type进行查找,如果都没查找到,那么则抛出异常。public class StudentController { @Resource(name="studentServer") private StudentServer studentServer; }
指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常。public class StudentController { @Resource(type="StudentServer") private StudentServer studentServer; }
指定了type,则从上下文中找到类似匹配的唯一bean进行装配,找不到或是找到多个,都会抛出异常。public class StudentController { @Resource(name="studentServer",type="StudentServer") private StudentServer studentServer; }
同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常。总结
@Autowired是Spring的注解通过类型(type)来实现装配Bean,也可以通过名称(name)来装配Bean(需要配合@Qualifier("beanname")使用)。依赖对象必须存在,如果要允许null值,可以设置它的required属性为false @Autowired(required=false)。
@Resource是J2EE的注解是Java自已的东西使用@Resource可以减少代码和Spring之间的耦合。它可以通过by-type来实现装配Bean,也可以by-name进行装配,如果指定了则按照指定的进行装配,如果都没指定的话先by-name 后by-type 也可以同时指定by-name与by-type。
相同的配方,熟悉的味道,比亚迪悬了美国准备制裁中国汽车业了,你猜会是谁?妥妥的比亚迪啊!怎么感觉是相同的配方,熟悉的味道啊!苹果制裁华为,造就了苹果,现在苹果高端市场占比60以上,一家拿走了90的利润。而制裁比亚迪
常见的互联网思维有哪些?互联网思维包括哪些?1流量思维(关于业务运营)流量就是用户的注意力,粉丝。流量思维首先利用免费获取用户的注意力。免费是更好的收费。案例一车站餐厅。去过车站的人都知道,食物不仅贵,而且难吃,但这些店的生
创造一个拥有860亿物理神经元的人工大脑,以及一个能增效1,000倍的神经网络文JohnKoetsier如果我们在尝试构建人工智能时,既不用代码来模拟神经元,也不用Python来模拟神经网络,而是用与我们的生物大脑非常相似的形式,即用物理突触来连接实际的物理
GUICLIAPI基础设施即代码的基本术语基础设施即代码(IaC)适用于几乎所有人。在构建云原生应用程序或进行多云操作时尤其如此,在这些操作中,基础设施组件的数量不断增长,应用程序发布到生产环境的速度从未放缓。IaC可以帮
比亚迪联手英伟达,更高级别的智能驾驶要来了?近日,比亚迪汽车官方宣布将与英伟达(NVIDIA)在智能驾驶技术方面达成合作,据悉英伟达是目前全球领先的人工智能计算制造商。并且从2023年上半年起,比亚迪也将在其部分新能源汽车上
我在美团买菜购物的糟糕经历我在3月25日美团买菜上秒杀购买了2斤黄瓜,共计7。51元,今天美团通知我取货时,明确告知包含有这2斤黄瓜的,但等我去取货时,确被告知没有货,取货店团长要我按7。51元办理退款。这
python修改excel文件importxlrdimportxlwtfromxlwtimportWorkbookimportosimportos。pathfromopenpyxl。reader。excelim
点燃农村电商新动能,推动乡村振兴打开手机屡屡出现县长直播带货,各大电商平台农产品专栏几乎占据主页C位,各式各样的农产品进入到了千家万户的餐桌这一幕幕生动的场景,更多的诠释出了农村电商推动乡村振兴的新动能。农村电商
宁夏深化互联网教育示范区建设原标题宁夏深化互联网教育示范区建设中工网讯(工人日报中工网记者马学礼)记者近日从宁夏回族自治区教育厅获悉,自2018年7月获准建设全国互联网教育示范区以来,经过3年多的实践与探索,
SpringCloudFunction现RCE0近日,SpringCloudFunction官方测试用例曝光了SpringCloudFunctionSPEL表达式注入漏洞,可利用该漏洞通过注入SPEL表达式来触发远程命令执行。S
菜市场85以上都在用微信收款,通知要求马上关闭?真相来了去年支付端通知信息下发,有一则要求提到微信与支付宝的个人收款码需要调整,被不少人误以为今年3月1日收款码会被停掉,直到现在谣言不攻自破。这条消息确实是真的,但调整的目的却不是为了影