在这个例子中,我们将学习如何在Spring Application中声明一个bean。我们将构建一个简单的Maven项目来演示它。因此,让我们开始设置我们的Maven项目。
下面是我们的Maven项目的目录结构。
. ├── pom.xml └── src └── main ├── java │ └── org │ └── nhooo │ └── example │ └── spring │ └── hello │ ├── Hello.java │ ├── HelloImpl.java │ └── HelloWorldDemo.java └── resources └── spring.xml
我们需要创建一个pom.xml文件,并添加项目配置和库依赖项。
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>nhooo-project</artifactId> <groupId>org.nhooo.example</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>nhooo-spring-core</artifactId> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>5.1.2.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>5.1.2.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>5.1.2.RELEASE</version> </dependency> </dependencies> </project>
接下来,我们将创建一个名为的简单bean HelloImpl。该bean实现了一个接口Hello,该接口用一个sayHello()要实现的方法调用。这是接口的实现定义。
package org.nhooo.example.spring.hello; public interface Hello { void sayHello(); }
package org.nhooo.example.spring.hello; public class HelloImpl implements Hello { public void sayHello() { System.out.println("Hello World!"); } }
拥有bean之后,我们需要创建Spring配置,它是一个xml文件,我们将其命名为spring.xml。使用bean配置文件中的元素声明的Bean 。声明至少包含bean的id和class。
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="hello"/> </beans>
现在,我们在Spring容器中声明了bean。下一步将向您展示如何从容器中获取bean并在我们的程序中使用它。有很多方法可以用来加载Spring容器。在这里,我们将使用ClassPathXmlApplicationContext。此类加载在运行时类路径中找到的配置。
package org.nhooo.example.spring.hello; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class HelloWorldDemo { public static void main(String[] args) { String config = "spring.xml"; ApplicationContext context = new ClassPathXmlApplicationContext(config); Hello hello = (Hello) context.getBean("hello"); hello.sayHello(); } }