IOC操作Bean管理注解方式(注入属性@Autowired和Qualifier)

目录

IOC操作Bean管理注解方式(注入属性@Autowired、@Qualifier和@Resource)

1.基于注解方式实现 属性注入

(1)@Autowired:根据属性类型进行自动装配

第一步:

第二步:

(2)@Qualifier:根据属性名称进行注入

测试:

(3)@Resource:可以根据类型注入、也可以根据名称注入

(4)@Value:注入普通类型属性

测试:


IOC操作Bean管理注解方式(注入属性@Autowired、@Qualifier和@Resource)

 

1.基于注解方式实现 属性注入

(1)@Autowired:根据属性类型进行自动装配

结构图:

 

第一步:

把service 和 dao 对象进行创建,在 service 和 dao 类添加 创建对象注解

UserService类中代码如下:

package com.lbj.spring5.service;import org.springframework.stereotype.Service;//开启注解
@Service
public class UserService {public void add(){System.out.println("UserService is open");}
}

 UserDao接口类代码如下:

package com.lbj.spring5.dao;public interface UserDao {public void add();}

 UserDaoImpl类中代码如下:

package com.lbj.spring5.dao;import org.springframework.stereotype.Repository;@Repository
public class UserDaoImpl implements UserDao{@Overridepublic void add() {System.out.println("addmethod is open");}
}

 

第二步:

在service 注入dao 对象,在service类添加 dao 类型属性,在属性上面使用注解就可以做到注入dao 对象

注意:不需要添加set方法,因为注解已经进行封装

 

 UserService类的代码如下:

package com.lbj.spring5.service;import com.lbj.spring5.dao.UserDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Service;@Service
public class UserService {//依旧是set注入,定义dao类型属性,但是不需要添加set方法//添加注入属性 注解
@Autowiredprivate UserDao userDao;public void add(){System.out.println("UserService is open");//调用效果userDao.add();}
}

测试:

 

 

(2)@Qualifier:根据属性名称进行注入

这个@Qualifier注解的使用,需要和上面的@Autowired一起使用

原因:因为只有 根据唯一的名称才可以准确找到属于哪一个类(毕竟一个接口一般是有多个实现类的)

演示: 

 

 

测试:

 

(3)@Resource:可以根据类型注入、也可以根据名称注入

根据类型注入:UserService类中代码如下:

package com.lbj.spring5.service;import com.lbj.spring5.dao.UserDao;
import org.springframework.stereotype.Service;import javax.annotation.Resource;@Service
public class UserService {@Resource //根据类型进行注入private UserDao userDao;public void add(){System.out.println("UserService is open");//调用效果userDao.add();}
}

 

根据名称注入: UserService类中代码如下:

package com.lbj.spring5.service;import com.lbj.spring5.dao.UserDao;
import org.springframework.stereotype.Service;import javax.annotation.Resource;@Service
public class UserService {@Resource(name = "userDaoImpl01") //根据名称进行注入private UserDao userDao;public void add(){System.out.println("UserService is open");//调用效果userDao.add();}
}

 

需要注意:@Resource 的 引入的包是在java的扩展包 javax中,本身不是Spring里面的,因此官方不建议用这个注解

 

 

(4)@Value:注入普通类型属性

package com.lbj.spring5.service;import com.lbj.spring5.dao.UserDao;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;import javax.annotation.Resource;@Service
public class UserService {@Value(value = "abc")private String name;public void add(){System.out.println("UserService is open"+name);//调用效果userDao.add();}
}

测试:

 

注意:(1)(2)(3)都是根据对象进行属性注入,(4)是根据普通类型属性注入

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/501142.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python数据可视化的特点_6 种 Python 数据可视化工具

原标题:6 种 Python 数据可视化工具 英文:Chris Moffitt,编译:伯乐在线/李加庆 简介 在 Python 中,将数据可视化有多种选择,正是因为这种多样性,何时选用何种方案才变得极具挑战性。本文包含了一…

IOC操作Bean管理注解方式(完全注解开发)

IOC操作Bean管理注解方式(完全注解开发) (1)创建配置类,替代xml配置文件 需要让Spring 把一个普通的类认为是配置类 结构图: SpringConfig类代码如下: package com.lbj.spring5.comfig;import …

python什么教程好_Python基础教程哪个好

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 对于零基础想学习编程的朋友来说,Python是个非常不错的选择。Python的基础概念是极简的对象化实现,内存管理都采用统一的计数GC,为了提高开发效率而限制了几乎所有的底层操作。Python难度不大&a…

怎么查看ingress的规则_有机合成中常见的基础理论规则

本文总结了本号以往发布的一些有机合成中常见的基础理论规则,方便大家学习交流,点击下方标题链接链接可以查看详细内容,内容不全,小编后面还会更新。在下方菜单“知识技能”中也可以点击查看。马氏规则 扎伊采夫(Zaitsev)消除规则…

Spring的AOP-基本概念

AOP-基本概念 Aspect Oriented Programming:面向切面编程,利用AOP 可以对业务逻辑的各个部分进行隔离。从而使得业务逻辑各部分之间的 “ 耦合度降低 ” 通俗解释:在不修改原有代码的情况下增加功能而不影响原有功能,在主干功能里…

为什么python打不开_python文件打不开如何解决

python中打开文件使用的是open()函数,获取文件对象,之后的操作都是相对于文件对象而言的。f open(your_file.txt,r) 就可以打开一个文件进行操作。第二个参数为对文件的操作方式,’w’是写文件,已存在的同名文件会被清空&#xf…

pythonpip使用方法_Python: pip常见的使用方法

pip升级自己:pip install --upgrade pip查找与安装:使用search、install这两个参数。安装到用户目录:pip install pkg_name --user查看某个库的信息:$ pip show Jinja2---Name: Jinja2Version: 2.7.3Location: /path/to/virtualen…

Spring的AOP-底层原理

目录 1.有两种动态代理 第一种:有接口情况,使用JDK动态代理 第二种:无接口情况,使用CGLIB动态代理 2.使用JDK动态代理,使用Proxy类里面的方法创建代理对象 步骤一: 步骤二: 步骤三&#…

python搭建web服务器_Python搭建简单的web服务器

Python搭建简单的web服务器 1.winR输入cmd打开命令行 2.通过 cd 进入到你保存 HTML 文件的目录。例如:H:\D3\d3 输入 cd\ 指令进入到C盘的根目录。(CD(更改目录)。使用此命令可以更改当前目录) 这里解释一下cd指令基本…

screnc加密后文件不能执行_芯片加密后还能不能再次使用【详细介绍】

随着信息技术的发展,信息的载体-芯片的运用也越来越多了,随之而来的芯片安全性的要求也越来越高了,各个芯片厂商对芯片保密性要求越来越高,芯片的加密,保证了芯片中的信息的安全性。经常有客户打电话过来问&#xff0c…

Spring的AOP-操作术语

目录 Spring的AOP-操作术语 1.连接点 2.切入点 3.通知 (1)实际增强的逻辑部分称为通知 (2)通知有多种类型 4.切面 Spring的AOP-操作术语 1.连接点 类里面那些方法可以被增强,这些方法称为连接点 2.切入点 类里…

向别人网页注入js_区块链研究实验室 | Web3 .js基于以太坊的Javascript API

web3.js是一个库集合,你可以使用HTTP或IPC连接本地或远程以太它节点进行交互。 web3的JavaScript库能够与以太坊区块链交互。 它可以检索用户帐户,发送交易,与智能合约交互等。Version : 1.0.0-beta.36Web3.js API类型eth:Etherum…

python绘制动态图表怎么存下来_做动态图表,没有数据?用Python就能获取!

这是小F在国庆之前写的一篇文章,全网阅读累计达到3万。 既然有了Python这个制作动态条形图工具,缺的那便是数据了。 先看一下B站2019年「数据可视化」版块的情况,第一个视频超2百万的播放量,4万的弹幕。 小F自己在B站上制作的几个…

Spring的AOP-准备工作

目录 Spring的AOP-准备工作 1.Spring框架一般基于 AspectJ 实现AOP操作 2.基于AspectJ 实现 AOP 操作 (1)基于xml 配置文件实现 (2)基于注解方式实现【常用】 3.在项目工程用引入AOP 相关依赖 步骤一:找到依赖包…

python 小说 云_小说python操作PLC

PLC(Programmable Logic Controller)可编程逻辑控制器,可以理解为一个微型计算机,广泛应用于工业控制中,如楼宇智控、精密机床、汽车电子等等。 随着物联网的兴起,越来越多的传统工业设备需要和外界通信,但很多情况下&…

stream去重_使用Java Stream API中DistinctBy删除重复数据

Stream API提供distinct()方法,该方法基于数据Object类的equals()方法返回列表的不同元素。下面先做一个数据Object类,用来发现重复数据:public class LegacyObject {private final UUID id;private final String foo;private final int bar;…

Spring的AOP-AspectJ注解方式

目录 Spring的AOP-AspectJ注解方式 1.创建类,在类里面定义方法 2.创建增强类 3.进行通知的配置 (1)在Spring 配置文件中,开启直接扫描 (2)使用注解创建User 和 UserProxy 对象 (3&#x…

python turtle绘制柱状图_python绘制图形(Turtle模块)

用python的Turtle模块可以绘制很多精美的图形,下面简单介绍一下使用方法。 需要用到的工具有python,python 的安装这里就不再细说。自行搜索。 from turtle import * #引入turtle模块 color(red, yellow) #设置绘制的颜色和填充颜色 # 海龟设置 hideturt…

laravel商品图片怎么展示_如何使用Laravel图片处理包intervention-image

下面由Laravel教程栏目给大家介绍如何使用Laravel图片处理包intervention-image,希望对需要的朋友有所帮助!最近偶然发现了Laravel可用的图片处理包intervention-image。文档地址:http://image.intervention.io安装起来也很简单。composer re…

JdbcTemplate(概念和准备)

目录 1.什么是jdbcTemplate 2.使用前准备工作: (1)引入相关jar包 (2)在spring 配置文件配置数据库连接池​ (3)配置jdbcTemplate 对象,注入 DataSource (4&#xf…