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

相关推荐
dllxhcjla8 分钟前
黑马头条1
java
宠友信息11 分钟前
一套基于uniapp+springboot完整社区系统是如何实现的?友猫社区源码级功能解析
java·spring boot·后端·微服务·微信·uni-app
humors22121 分钟前
各厂商工具包网址
java·数据库·python·华为·sdk·苹果·工具包
无限进步_31 分钟前
【C++&string】大数相乘算法详解:从字符串加法到乘法实现
java·开发语言·c++·git·算法·github·visual studio
海兰1 小时前
使用 Spring AI 打造企业级 RAG 知识库第二部分:AI 实战
java·人工智能·spring
難釋懷1 小时前
缓存同步
spring·缓存·mybatis
历程里程碑1 小时前
二叉树---二叉树的中序遍历
java·大数据·开发语言·elasticsearch·链表·搜索引擎·lua
阿丰资源1 小时前
SpringBoot+MySQL+MyBatis-Plus+Vue前后端分离仓库管理系统 (附资料)
spring boot·mysql·mybatis
小信丶1 小时前
Spring Cloud Stream EnableBinding注解详解:定义、应用场景与示例代码
java·spring boot·后端·spring
s1mple“”1 小时前
互联网大厂Java面试实录:谢飞机的AIGC求职之旅 - JVM并发编程到Spring Cloud微服务
spring boot·aigc·微服务架构·java面试·分布式系统·rag技术·redis数据库