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

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

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

import引入包

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

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

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

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

java 复制代码
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 方法

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

总结

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

相关推荐
ps酷教程1 小时前
Jackson 解决没有无参构造函数的反序列化问题
java
NiceCloud喜云1 小时前
Opus 4.8 的 Effort Control 怎么选:Low 到 Max 五档策略
android·java·大数据·前端·c++·python·spring
杨连江1 小时前
仿人脑抑制机制的图像识别网络抗全域异常激活算法研究
经验分享·神经网络
_日拱一卒2 小时前
LeetCode:994腐烂的橘子
java·数据结构·算法·leetcode·深度优先
芯片智造2 小时前
cmp后清洗的刷子是什么材质?
经验分享
隔窗听雨眠2 小时前
Nginx网关响应慢排查手记
java·服务器·nginx
中屹指纹浏览器3 小时前
2026指纹浏览器代理链路适配原理与多线路集群调度方案
经验分享·笔记
智慧物业老杨3 小时前
智慧物业合同周期管理系统:从风险预警到智能交接的全流程数智化落地方案
java·人工智能·python
源码宝3 小时前
MES系统源码:Java8 + SpringBoot2.7 + MySQL8 + Redis,后端源码清爽易扩展
java·后端·源码·springboot·mes系统·源码二开·mes源码
JAVA社区4 小时前
Java高级全套教程(十)—— SpringCloudAlibaba超详细实战详解
java·开发语言·spring cloud·面试·职场和发展