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

开发经验分享之:import引入包和@Autowired注入类有什么区别

大家好,我是三叔,很高兴这期又和大家见面了,一个奋斗在互联网的打工人。

import 和 @Autowired 想必大家在 Java 开发中使用频率最多的关键字之一了把,这篇博客将解释这两个概念的区别和作用,帮助你更好地理解它们在Java开发中的应用。

import引入包

在 Java 中,import 关键字用于引入其他包中的类、接口或静态成员,以便在当前文件中可以直接使用这些引入的类或成员而无需写完整的包名。这样做的目的是为了简化代码的书写,提供一种更方便的方式来使用其他包中的内容。

如果不使用 import,则是这样:

public class Demo{public static void main(String[] args) {java.util.List<String> list = new java.util.ArrayList<>();// 使用完整的包名来访问List和ArrayList// ...}
}

如果使用 import 引入包,代码将变得更加简洁:

import java.util.List;
import java.util.ArrayList;public class Demo{public static void main(String[] args) {List<String> list = new ArrayList<>();// 直接使用List和ArrayList,无需写完整的包名// ...}
}

Spring中的@Autowired注入类

@Autowired 是 Spring 框架中的注解,用于实现依赖注入(Dependency Injection)。它的作用是自动装配 (Spring容器中的) Bean 对象,将需要的依赖注入到目标类中。在 Spring 中,Bean 是由容器管理的对象,可以通过 @Autowired 注解来自动将这些 Bean 注入到目标类中,从而实现类之间的解耦和依赖关系的自动装配。

假设我们有一个 Spring 的 Service 类 demoService,它依赖于另一个 UserUtils 类的 checkId(),我们可以使用 @Autowired 注解将 userUtils 实例注入到 demoService 中:这样我们就可以使用这个工具类的 checkId 方法

@Service
public class demoService{@Autowiredprivate UserUtils userUtils ;// 业务逻辑public void demo(User user) {// user 对象不为 null 的时候userUtils.checkId(user.getId);// 其他业务逻辑...}  
}

总结

import 引入包和 @Autowired 注入类是 Java 开发中两个截然不同的概念。import 用于简化代码中对其他包的类或成员的访问,提供了更方便的写法,但不会自动创建实例。而 @Autowired 是 Spring 框架中实现依赖注入的注解,用于自动将需要的依赖注入到目标类中,从而实现类之间的解耦和依赖关系的自动装配。

http://www.lryc.cn/news/104014.html

相关文章:

  • MySQL和Oracle区别
  • QT--day6(人脸识别、图像处理)
  • 深度学习:常用优化器Optimizer简介
  • 【算法心得】二维dp的状态转移狂练
  • JMeter常用内置对象:vars、ctx、prev
  • 【C++从0到王者】第十四站:list基本使用及其介绍
  • 正则表达式、常用的正则
  • ST官方基于米尔STM32MP135开发板培训课程(一)
  • 组件(lvs,keeplive,orm,mysql,分布式事务)
  • 《视觉SLAM十四讲》报错信息和解决方案
  • golang 设置http请求代理
  • 我的会议(会议通知)
  • css实现水平居中
  • c刷题(一)
  • webpack
  • 反复 Failed to connect to github.com port 443 after xxx ms
  • ARM裸机-11
  • centos7升级glibc
  • 【OnnxRuntime】在linux下编译并安装C++版本的onnx-runtime
  • C#基于OpenCv(OpenCvSharp) 的 fftshift, ifftshift 函数的实现
  • 【SpringBoot】笔记2
  • Spring事务传播机制详细讲解
  • kubernetes 集群搭建(kubeadm 方式)
  • 基于ARM+FPGA的驱控一体机器人控制器设计
  • docker 安装 字体文件
  • Vue.js与ASP.NET的结合,实现企业级应用的开发和部署
  • Uncaught SyntaxError: ‘‘ string literal contains an unescaped line break
  • Vue3+Vite+TypeScript常用项目模块详解
  • 数字电路(一)
  • Oracle也有回收站