开发经验分享之: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 框架中实现依赖注入的注解,用于自动将需要的依赖注入到目标类中,从而实现类之间的解耦和依赖关系的自动装配。

相关推荐
10001hours43 分钟前
初阶数据结构.1.顺序表.通讯录项目(只有源码和注释)
数据结构·算法
qq_336313933 小时前
java基础-字符串
java
纵有疾風起3 小时前
C++—string(1):string类的学习与使用
开发语言·c++·经验分享·学习·开源·1024程序员节
二进制person4 小时前
Java EE初阶 --多线程2
java·开发语言
007php0075 小时前
某游戏大厂 Java 面试题深度解析(四)
java·开发语言·python·面试·职场和发展·golang·php
西西学代码6 小时前
Flutter---个人信息(5)---持久化存储
java·javascript·flutter
陈果然DeepVersion6 小时前
Java大厂面试真题:Spring Boot+Kafka+AI智能客服场景全流程解析(五)
java·spring boot·kafka·向量数据库·大厂面试·rag·ai智能客服
FAFU_kyp6 小时前
Spring Boot 邮件发送系统 - 从零到精通教程
java·网络·spring boot
脚踏实地的大梦想家6 小时前
【Docker】P2 Docker 命令:从Nginx部署到镜像分享的全流程指南
java·nginx·docker
Blossom.1186 小时前
把AI“编”进草垫:1KB决策树让宠物垫自己报「如厕记录」
java·人工智能·python·算法·决策树·机器学习·宠物