bean的加载方式四 @import
第四种bean的导入方式
是import导入的方式
在配置类上面加上注解就行
package com.bigdata1421.config;
import com.bigdata1421.bean.Dog;
import org.springframework.context.annotation.Import;
@Import(Dog.class)
public class SpringConfig4 {
}
这个注解只能用一次
只能写一行
我们在APP类里面启动一下
package com.bigdata1421.bean.app;
import com.bigdata1421.bean.Dog;
import com.bigdata1421.config.SpringConfig3;
import com.bigdata1421.config.SpringConfig32;
import com.bigdata1421.config.SpringConfig4;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class App32 {
public static void main(String[] args) {
ApplicationContext ctx=new AnnotationConfigApplicationContext(SpringConfig4.class);
String[] arr = ctx.getBeanDefinitionNames();
for (String s : arr) {
System.out.println(s);
}
System.out.println();
System.out.println(ctx.getBean(Dog.class));
}
}
首先我们是创建bean实例类ApplicationContext类的对象
导入刚刚写的配置类的类加载器
我们用这个对象去调用里面的方法获取当前配置类里面的所有bean
把名称返回到一个字符串数组里面
我们用增强for循环遍历这个数组打印
输出在控制台
发现我们用Import注解导入的bean被成功加载
我们也可以获取一下这个对象
成功打印
如果找不到bean的话 就会报错
我们用注解创建的bean是全路径类名
我们注意我们的这边
并没有把Dog类标记为一个bean
用@Component注解及其衍生注解
这就代表我们可以进行有效的解耦
spring倡导无入侵式编程理念
Spring 框架倡导的无入侵式编程理念指的是,在使用 Spring 框架开发应用程序时,你的业务逻辑代码不需要依赖于 Spring 特定的类或接口,也不需要继承 Spring 的特定类。换句话说,你可以在不改变代码结构的情况下,将 Spring 框架集成到现有的应用中,并且可以很容易地移植到其他环境中,而不会受到 Spring 框架的限制或影响。
具体来说,Spring 框架通过依赖注入(Dependency Injection)和面向切面编程(Aspect-Oriented Programming)等技术,实现了控制反转(IoC)和面向切面编程(AOP),使得应用程序中的组件(如业务逻辑、数据访问等)能够独立于框架进行开发和测试。这种方式使得代码的可维护性和扩展性大大提高,同时降低了框架引入和替换的风险和成本。
总之,Spring 的无入侵式编程理念使得开发者可以更加专注于业务逻辑的实现,而不必过多关注框架的具体实现细节,从而提高了开发效率和代码质量。
只需要一个注解就行 十分的方便
小结
这是框架内部经常用到的一种初始化bean的方式
这也是很多spring整合其他技术时的一种手段
个人号推广
博客主页
多多!-CSDN博客
Web后端开发
https://blog.csdn.net/qq_30500575/category_12624592.html?spm=1001.2014.3001.5482
Web前端开发
https://blog.csdn.net/qq_30500575/category_12642989.html?spm=1001.2014.3001.5482
数据库开发
https://blog.csdn.net/qq_30500575/category_12651993.html?spm=1001.2014.3001.5482
项目实战
https://blog.csdn.net/qq_30500575/category_12699801.html?spm=1001.2014.3001.5482
算法与数据结构
https://blog.csdn.net/qq_30500575/category_12630954.html?spm=1001.2014.3001.5482
计算机基础
https://blog.csdn.net/qq_30500575/category_12701605.html?spm=1001.2014.3001.5482
回忆录
https://blog.csdn.net/qq_30500575/category_12620276.html?spm=1001.2014.3001.5482