本文为博主原创,未经允许不得转载:

Spring注入有以下几种方式:

  1. 构造方法注入:通过构造方法实现依赖注入。在类的构造方法中使用@Autowired注解注入需要的依赖类。
  2. Setter方法注入:通过setter方法实现依赖注入。在类中定义对应的setter方法,并使用@Autowired注解注入需要的依赖类。
  3. 字段注入:直接在类中定义依赖类的字段,并使用@Autowired注解注入需要的依赖类。
  4. 接口注入:通过实现接口实现依赖注入,将需要注入的依赖类定义为接口类型,在类中使用@Autowired注解注入实现该接口的类。
  5. 注解注入:除了@Autowired注解,还可以使用@Inject、@Resource等注解,实现依赖注入。选择哪种注解要根据具体情况来决定。

总的来说,Spring的依赖注入机制可以灵活地应对不同种类的依赖注入需求,提高了代码的可维护性和可重用性。

  1. 构造方法注入:
@Service
public class UserServiceImpl implements UserService { private final UserDao userDao; @Autowired
public UserServiceImpl(UserDao userDao) {
this.userDao = userDao;
} // 业务方法
@Override
public void addUser(User user) {
userDao.addUser(user);
}
}

  

  1. Setter方法注入:

@Service
public class UserServiceImpl implements UserService { private UserDao userDao; @Autowired
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
} // 业务方法
@Override
public void addUser(User user) {
userDao.addUser(user);
}
}
  1. 字段注入:
 

@Service
public class UserServiceImpl implements UserService { @Autowired
private UserDao userDao; // 业务方法
@Override
public void addUser(User user) {
userDao.addUser(user);
}
}
  1. 接口注入:
@Service
public class UserServiceImpl implements UserService { private UserMapper userMapper; @Autowired
public UserServiceImpl(UserMapper userMapper) {
this.userMapper = userMapper;
} // 业务方法
@Override
public void addUser(User user) {
userMapper.addUser(user);
}
}
  1. 注解注入:
@Service
public class UserServiceImpl implements UserService { @Resource
private UserDao userDao; // 业务方法
@Override
public void addUser(User user) {
userDao.addUser(user);
}
}

  可以根据实际需求选择不同的方式进行注入。

spring注入的几种方式的更多相关文章

  1. Spring注入值得2种方式:属性注入和构造注入

    Spring是一个依赖注入(控制反转)的框架,那么依赖注入(标控制反转)表现在那些地方了? 即:一个类中的属性(其他对象)不再需要手动new或者通过工厂方法进行创建,而是Spring容器在属性被使用的 ...

  2. Spring 注入的两种方式

    Spring 的两种注入方式: 1. 属性注入:通过无参构造函数+setter方法注入 2. 构造注入:通过有参的构造函数注入. 优缺点: 1. 属性注入直白易懂,缺点是对于属性可选的时候,很多个构造 ...

  3. spring注入的四种方式

    配置文件spring.xml: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=&qu ...

  4. Spring中属性注入的几种方式以及复杂属性的注入

    在Spring框架中,属性的注入我们有多种方式,我们可以通过构造方法注入,可以通过set方法注入,也可以通过p名称空间注入,方式多种多样,对于复杂的数据类型比如对象.数组.List集合.map集合.P ...

  5. Spring静态注入的三种方式

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/chen1403876161/article/details/53644024Spring静态注入的三 ...

  6. 峰Spring4学习(2)依赖注入的几种方式

    一.装配一个bean 二.依赖注入的几种方式 com.cy.entity   People.java: package com.cy.entity; public class People { pri ...

  7. 普通java类加入spring容器的四种方式

    今天在自己开发的工具类中使用了spring注入的方式调用了其他类,但是发生的报错,在整理了后今天小结一下. 首先简单介绍下spring容器,spring容器是整个spring框架的核心,通常我们说的s ...

  8. Spring管理事物两种方式

    Spring管理事物两种方式 1. 编程式事物管理(在开发中不经常使用) 使用步骤 1. 配置数据库事物管理 DataSourceTransactionManager <!--配置事物管理器-- ...

  9. 预处理(防止sql注入的一种方式)

    <!--- 预处理(预编译) ---><?php/* 防止 sql 注入的两种方式: 1. 人为提高代码的逻辑性,使其变得更严谨,滴水不漏. 比如说 增加判断条件,增加输入过滤等,但 ...

  10. ASP.NET MVC中使用Unity进行依赖注入的三种方式

    在ASP.NET MVC中使用Unity进行依赖注入的三种方式 2013-12-15 21:07 by 小白哥哥, 146 阅读, 0 评论, 收藏, 编辑 在ASP.NET MVC4中,为了在解开C ...

随机推荐

  1. vivo 容器平台资源运营实践

    作者:vivo 互联网服务器团队 - Chen Han 容器平台针对业务资源申请值偏大的运营问题,通过静态超卖和动态超卖两种技术方案,使业务资源申请值趋于合理化,提高平台资源装箱率和资源利用率. 一. ...

  2. 【2016】CloneCD和IsoBuster配合使用以提取VCD中的文件

    **笔记记录于:2016-11-24 ** 本文章仅供用于技术研究用途,请勿利用文章内容操作用于违反法律的事情. 起因: 公司老总让我提取下VCD中的文件以备份下,但是把光碟放进DVD光驱中发现只有几 ...

  3. 【C++】【图像处理】均值滤波 and 高斯滤波 and 中值滤波 (低通滤波器)and Sobel算子边缘提取算法解析(以.raw格式的图像为基础进行图像处理、gray levels:256)

    1 void meanFilter(BYTE* image, int width, int height, BYTE* outImg) 2 { 3 //均值滤波 4 int smth[9]; 5 in ...

  4. Javascript Ajax总结——FormData类型

    XMLHttpRequest1级只是把已有的XHR对象的实现细节描述出来.XMLHttpRequest2级进一步发展了XHR.FormData类型FormData类型,为序列化表单以及创建以表单格式相 ...

  5. 在Linux服务器上装jenkins(方式一:war包)

    官网下载jenkins https://www.jenkins.io/zh/download/ 官网下载太慢,可以去清华镜像下载(百度搜索:清华镜像) 下载的文件是jenkins.war 把安装文件放 ...

  6. 8、Flutter Paddiing组件

    Padding组件处理容器与子元素之间的间距. class MyApp extends StatelessWidget { const MyApp({super.key}); @override Wi ...

  7. 最基本的SpringCloud的搭建

    对于springcloud而言,模块是按业务进行区分的: 父工程 依赖 <parent> <groupId>org.springframework.boot</group ...

  8. LeetCode DP篇-背包问题(416、518)

    416. 分割等和子集 给定一个只包含正整数的非空数组.是否可以将这个数组分割成两个子集,使得两个子集的元素和相等. 注意: 每个数组中的元素不会超过 100 数组的大小不会超过 200 示例 1: ...

  9. 浏览器工作原理和实践(二)——JavaScript

    <浏览器工作原理与实践>是极客时间上的一个浏览器学习系列,在学习之后特在此做记录和总结. 一.执行流程 实际上变量和函数声明在代码里的位置是不会改变的,而且是在编译阶段被 JavaScri ...

  10. 从Encoder-Decoder模型入手,探索语境偏移解决之道

    摘要:在本文中,我们展示了CLAS,一个全神经网络组成,端到端的上下文ASR模型,通过映射所有的上下文短语,来融合上下文信息.在实验评估中,我们发现提出的CLAS模型超过了标准的shallow fus ...