一 前言
在XML中进行显式配置。
在Java中进行显式配置。
隐式的bean发现机制和自动装配
关于xml配置不会在本篇说明,有兴趣的读者可以自行了解学习;
二 自动装配bean
自动装配Bean主要通过如下两个方式实现自动装备bean
敲黑板了:
理下思路我们可以通过@Component注解使用在多个类上实现多个bean;然后通过@Autowiring使用在方法上实现bean之间的依赖注入;最后通过@ComponentScan将所有bean扫入spring应用上下文;当然里面还有许多使用的小细节,要不然很容易出错;
实现如下
2.1 棉被类
/** * @Author lsc * <p>棉被 </p> */ @Component public class Quilt { // 质量 private String quality; public void product(){ System.out.println("生产与中国"); } // 省略set/get }
2.2 被单类
/** * @Author lsc * <p> 被单</p> */ @Component//相当于@Component("sheet") public class Sheet { // 颜色 private String color; // 长度 private String length; private Quilt quilt; // 使用构造器注入方式将Quilt注入到Sheet,你也可以使用set方式;原则上还可以其它方法 public Sheet(Quilt quilt){ this.quilt = quilt; } // 省略set/get }
2.3被单配置类
/** * @Author lsc * <p>被单配置类 </p> */ @Configuration//告诉spring这是一个配置类 @ComponentScan//这边的包是com.zszxz.auto 相当于@ComponentScan(basePackages = {"com.zszxz.auto"}) public class SheetConfig { }
2.4 测试类
/** * @Author lsc * <p> </p> */ @RunWith(SpringJUnit4ClassRunner.class)//创建spring应用上下文 @ContextConfiguration(classes= SheetConfig.class)//加载配置类 public class SheetTest { @Autowired Sheet sheet; @Test public void sheetTest(){ // 生产与中国 sheet.getQuilt().product(); } }
三 java配置
java配置只需要通过如下注解即可完成,通常使用在引入第三方类时;
思路:@Configuration注解声明的配置类中使用注解@Bean,就实现了java配置;
3.1 棉类
/** * @Author lsc * <p>棉 </p> */ public class Cotton { // 质量 private String quality; public void product(){ System.out.println("cotton生产与中国"); } // 省略set/get }
3.2 毛毯
/** * @Author lsc * <p> 毛毯</p> */ public class Blanket { // 颜色 private String color; // 长度 private String length; // 构造器注入 private Cotton cotton; @Autowired public Blanket(Cotton cotton){ this.cotton = cotton; } // 省略set/get }
3.3 毛毯配置类
/** * @Author lsc * <p>毛毯配置类 </p> */ @Configuration//告诉spring这是一个配置类,spring会扫描其所有配置纳入spring容器 public class BlanketConfig { // 将Cotton注入到spring应用上下文 @Bean public Cotton cotton(){ return new Cotton(); } // 将 Cotton注入到Blanket注入到spring应用上下文 @Bean public Blanket blanket(Cotton cotton){ return new Blanket(cotton); } }
3.4 测试类
/** * @Author lsc * <p> </p> */ @RunWith(SpringJUnit4ClassRunner.class)//创建spring应用上下文 @ContextConfiguration(classes= BlanketConfig.class)//加载配置类 public class BlanketTest { @Autowired Blanket blanket; @Test public void sheetTest(){ // cotton生产与中国 blanket.getCotton().product(); } }
四 配置结合
使用 @Import 注解能将一个配置类导入另一个配置类, 通常用来合并配置类,下面的示例使用方式更加优雅;
使用示例
/** * @Author lsc * <p> </p> */ @Configuration @Import({SheetConfig.class, BlanketConfig.class}) public class MergeConfig { }
测试示例
/** * @Author lsc * <p> </p> */ @RunWith(SpringJUnit4ClassRunner.class)//创建spring应用上下文 @ContextConfiguration(classes= MergeConfig.class)//加载配置类 public class MergeTest { @Autowired Blanket blanket; @Test public void sheetTest(){ // cotton生产与中国 blanket.getCotton().product(); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
问题内容: 我在结合JavaFX和Spring时遇到问题。我有一个简单的JavaFX应用程序,它运行良好。现在,我正在尝试向其中添加一些Spring。我在Spring教程中跟随JavaFX 2。我的代码: 是具有main的文件: : : 我的SpringFxmlLoader在教程中看起来与此类似: 我的SpringApplicationConfig: 在我的应用程序中,我具有绑定控制器: 当我运行
本文向大家介绍spring 自动装配 bean 有哪些方式?相关面试题,主要包含被问及spring 自动装配 bean 有哪些方式?时的应答技巧和注意事项,需要的朋友参考一下 no:默认值,表示没有自动装配,应使用显式 bean 引用进行装配。 byName:它根据 bean 的名称注入对象依赖项。 byType:它根据类型注入对象依赖项。 构造函数:通过构造函数来注入依赖项,需要设置大量的参数。
以下SpringBean声明似乎“按预期”运行和行为: 其中“如预期”表示“没有明显的错误”。 假设有一些复杂的生命周期(例如,使用管理外部资源),这是的有效且合理的声明吗?我能找到的所有示例(官方和非官方)都表明实例应该在中实例化,而不是存储在字段中或从字段中检索。然而,我在任何文件中都找不到任何确定的信息,说明这应该或不应该是安全的。 例如,我能找到的最相关的文档是关于SpringIoCbea
我使用JSF和托管Beans创建了一个简单的应用程序。从托管bean,我试图实例化一个将数据存储到数据库的spring bean。然而,“@autowired”注释似乎不起作用,因为我得到了一个nullpointerexcpetion。我阅读了关于如何在Spring中使用JSF和托管bean的所有相关主题,但不能解决这个问题。也许有人可以看看下面的代码,给我一个提示? 服务Bean faces.c
本文向大家介绍Spring Bean常用的的装配方式详解,包括了Spring Bean常用的的装配方式详解的使用技巧和注意事项,需要的朋友参考一下 Bean常用的装配方式有3种: 基于xml的装配 基于Annotation(注解)的装配 基于Java配置类的装配 基于xml的装配 在xml文件中配置Bean。 如果依赖很多,xml配置文件会很臃肿,后期维护、升级不方便。自动装配可解决这一问题。 基
本文向大家介绍Spring的自动装配Bean的三种方式,包括了Spring的自动装配Bean的三种方式的使用技巧和注意事项,需要的朋友参考一下 spring的自动装配功能的定义:无须在Spring配置文件中描述javaBean之间的依赖关系(如配置<property>、<constructor-arg>)。IOC容器会自动建立javabean之间的关联关系。 如果没有采用自动装配的话,手动装配我们