网站首页 > 知识剖析 正文
装配Bean
在大部分场景下,我们会使用ApplicationContext的具体实现类,因为对应的Spring IOC容器功能相对强大,而在Spring中提供了三种方法进行配置:
- 在XML中显示配置
- 在Java的接口和类中实现配置
- 隐式Bean的发现机制和自动装配原则
一般地,应该尽可能地使用自动装配的机制。显式配置越少越好。如果必须要显式配置bean时,比如源码不是自己来维护的,而是当你需要为这些代码配置bean的时候,也推荐使用JavaConfig。除非想要使用XML命名空间,并且在JavaConfig中没有同样的实现时,才应该使用XML。
创建实例
创建一个maven项目,导入主要的依赖,pom.xml文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="Maven - Page Not Found"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="Maven - Page Not Found http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.hs.spring</groupId>
<artifactId>spring5-demo1</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<!-- org.springframework " spring-core -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.3.3</version>
</dependency>
<!-- org.springframework " spring-beans -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>5.3.3</version>
</dependency>
<!-- org.springframework " spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.3</version>
</dependency>
<!-- org.springframework " spring-expression -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>5.3.3</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
通过xml配置装配Bean
实现自动装配,bean标签属性autowire,配置自动装配。autowire属性常用两个值:
- byName:根据属性名称注入
- byType:根据属性类型注入
通过beans.xml配置文件进行配置:
<bean id="dept" class="com.hs.spring.pojo.Dept" autowire="byType">
</bean>
<bean id="emp" class="com.hs.spring.pojo.Emp">
</bean>
表示根据类型来实现装配,但是有一个问题,如果有两个类型相同的会有问题。
使用实例
使用xml装配bean,需要配置一个xml配置文件,如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="Index of /schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="Index of /schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="userService" class="com.hs.spring.UserService">
</bean>
</beans>
编写一个class类:
package com.hs.spring;
public class UserService {
public void addUser(){
System.out.println("添加一个用户");
}
}
测试通过spring获取对象:
import com.hs.spring.UserService;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestSpring5 {
@Test
public void testAdd(){
//加载Spring的配置文件
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
//获取配置创建的对象
UserService userService = context.getBean("userService",UserService.class);
//执行方法
userService.addUser();
}
}
- 上一篇: Spring的AOP示例之xml方式
- 下一篇: 接口响应断言神器---Json Schema
猜你喜欢
- 2024-11-23 Spring中源码中涉及的「设计模式」知多少?
- 2024-11-23 spring阅读--容器及实例化
- 2024-11-23 Java教程:学会写Starter-你就懂了SpringBoot自动配置
- 2024-11-23 SpringBoot学习笔记三之表述层
- 2024-11-23 如何使用Java API操作HDFS系统?
- 2024-11-23 Spring IOC容器XML配置示例
- 2024-11-23 xml 配置文件规范 校验
- 2024-11-23 阿里P7大神,Java学习之路-IO流与XML,超赞分享
- 2024-11-23 Java基础教程:dubbo源码解析-服务暴露与发现
- 2024-11-23 解决springboot的pom.xml文件第一行报错问题
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)