1.创建项目
File/new/Other
2.申明Spring的基础库
这是 Spring的 HelloWorld 例子,所以我们只使用基本的Spring库(核心)。打开pom.xml文件来将使用的库声明:
pom.xml 使用以下内容重新覆盖原上面的内容。
<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">
<modelVersion>4.0.0</modelVersion>
<groupId>com.yiibai</groupId>
<artifactId>HelloSpring</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<!-- Spring Core -->
<!-- http://mvnrepository.com/artifact/org.springframework/spring-core -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.1.4.RELEASE</version>
</dependency>
<!-- Spring Context -->
<!-- http://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.1.4.RELEASE</version>
</dependency>
</dependencies>
</project>
3.工程代码
项目目录结构如下:
- 接口HelloWorld.java
package com.yibai.tutorial.spring.helloworld;
public interface HelloWorld {
public void sayHello();
}
- HelloWorldService
package com.yibai.tutorial.spring.helloworld;
public class HelloWorldService {
private HelloWorld helloWorld;
public HelloWorldService(){
}
public void setHelloWorld(HelloWorld helloWorld){
this.helloWorld=helloWorld;
}
public HelloWorld getHelloWorld() {
return this.helloWorld;
}
}
- SpringHelloWorld.java
package com.yibai.tutorial.spring.helloworld.impl;
import com.yibai.tutorial.spring.helloworld.HelloWorld;
public class SpringHelloWorld implements HelloWorld {
public void sayHello() {
// TODO Auto-generated method stub
System.out.println("Spring Say Hello!!");
}
}
- StrutsHelloWorld.java
package com.yibai.tutorial.spring.helloworld.impl;
import com.yibai.tutorial.spring.helloworld.HelloWorld;
public class StrutsHelloWorld implements HelloWorld{
public void sayHello() {
// TODO Auto-generated method stub
System.out.println("Struts Say Hello!!");
}
}
- HelloProgram.java
package com.yibai.tutorila.spring;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.yibai.tutorial.spring.helloworld.HelloWorld;
import com.yibai.tutorial.spring.helloworld.HelloWorldService;
public class HelleProgram {
public static void main(String[] args) {
ApplicationContext context=
new ClassPathXmlApplicationContext("beans.xml");
HelloWorldService service=
(HelloWorldService) context.getBean("helloWorldService");
HelloWorld hw=service.getHelloWorld();
hw.sayHello();
}
}
- beans.xml
<?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-3.0.xsd">
<bean id="springHelloWorld"
class="com.yibai.tutorial.spring.helloworld.impl.SpringHelloWorld"></bean>
<bean id="strutsHelloWorld"
class="com.yibai.tutorial.spring.helloworld.impl.StrutsHelloWorld"></bean>
<bean id="helloWorldService"
class="com.yibai.tutorial.spring.helloworld.HelloWorldService">
<property name="helloWorld" ref="springHelloWorld"/>
</bean>
</beans>
4.运行示例
之后打开beans.xml 修改如下
<!-- Original -->
<beanid="helloWorldService"
class="com.yibai.tutorial.spring.helloworld.HelloWorldService">
<propertyname="helloWorld"ref="springHelloWorld"/>
</bean>
<!-- Change to: -->
<bean id="helloWorldService"
class="com.yibai.tutorial.spring.helloworld.HelloWorldService">
<property name="helloWorld" ref="strutsHelloWorld"/>
</bean>
重新运行
5.工作原理
可以通过读取beans.xml 文件来创建一个应用程序上下文对象
ApplicationContext context = newClassPathXmlApplicationContext("beans.xml");
oC容器中,其作用是作为第三种角色,它的任务是创建 beans.xml 文件中声明的 Java Bean 对象。并通过setter方法注入依赖
在这个例子中,HelloWorldService 是一个 java bean 注入依赖。
<bean id="helloWorldService"
class="com.yibai.tutorial.spring.helloworld.HelloWorldService">
<!-- Call: helloWorldService.setHelloWorld(springHelloWorld) --> //再这里调用set方法
<propertyname="helloWorld"ref="springHelloWorld"/>
</bean>
网友评论