1.创建Maven项目,项目名称springdemo23,如图所示
2.配置Maven,修改项目中的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>1.0.0</modelVersion>
<groupId>shequ</groupId>
<artifactId>springdemo13</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<java.version>1.7</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<repositories>
<repository>
<id>codelds</id>
<url>https://code.lds.org/nexus/content/groups/main-repo</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.1.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.1.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.1.4.RELEASE</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.34</version>
</dependency>
</dependencies>
<build/>
</project>
3.在src/main/java下创建实体Bean Forum,包名(com.mycompany.shequ.bean)如图所示
4.实体Bean Forum的内容如下
package com.mycompany.shequ.bean;
public class Forum {
private int fid;
private String name;
public int getFid() {
return fid;
}
public void setFid(int fid) {
this.fid = fid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
5.在src/main/java下创建实体Bean ForumPost,包名(com.mycompany.shequ.bean)如图所示
6.实体Bean ForumPost的内容如下
package com.mycompany.shequ.bean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
public class ForumPost {
private int pid;
private String name;
private Forum forum;
public ForumPost() {
super();
}
public ForumPost(Forum forum) {
super();
this.forum = forum;
}
public int getPid() {
return pid;
}
public void setPid(int pid) {
this.pid = pid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Forum getForum() {
return forum;
}
@Autowired
@Qualifier("forum2")
public void setForum(Forum forum) {
this.forum = forum;
}
}
7.在src/main/java下创建服务接口IForumService,包名(com.mycompany.shequ.service)如图所示
8.服务接口IForumService的内容如下
package com.mycompany.shequ.service;
import com.mycompany.shequ.bean.Forum;
public interface IForumService {
public Forum getForumById(int fid);
}
9.在src/main/java下创建服务接口IForumPostService,包名(com.mycompany.shequ.service)如图所示
10.服务接口IForumPostService的内容如下
package com.mycompany.shequ.service;
import com.mycompany.shequ.bean.ForumPost;
public interface IForumPostService {
public ForumPost getForumPostById(int pid);
}
11.在src/main/java下创建服务接口IForumService的实现类ForumServiceImpl,包名(com.mycompany.shequ.service.impl)如图所示
12.服务接口IForumService的实现类ForumServiceImpl的内容如下
package com.mycompany.shequ.service.impl;
import com.mycompany.shequ.bean.Forum;
import com.mycompany.shequ.service.IForumService;
public class ForumServiceImpl implements IForumService {
public Forum getForumById(int fid) {
Forum forum = new Forum();
forum.setFid(fid);
forum.setName("@Configuration");
return forum;
}
}
13.在src/main/java下创建服务接口IForumPostService的实现类ForumPostServiceImpl,包名(com.mycompany.shequ.service.impl)如图所示
14.服务接口IForumPostService的实现类ForumPostServiceImpl的内容如下
package com.mycompany.shequ.service.impl;
import com.mycompany.shequ.bean.ForumPost;
import com.mycompany.shequ.service.IForumPostService;
public class ForumPostServiceImpl implements IForumPostService {
public ForumPost getForumPostById(int pid) {
ForumPost post = new ForumPost();
post.setPid(pid);
post.setName("@import");
return post;
}
}
15.在src/main/java下创建配置类ForumServiceImplConfig,包名(com.mycompany.shequ.config)如图所示
16.配置类ForumServiceImplConfig的内容如下
package com.mycompany.shequ.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.mycompany.shequ.service.IForumService;
import com.mycompany.shequ.service.impl.ForumServiceImpl;
@Configuration
public class ForumServiceImplConfig {
@Bean(name="forumservice")
public IForumService forumDao(){
return new ForumServiceImpl();
}
}
17.在src/main/java下创建配置类ForumPostServiceImplConfig,包名(com.mycompany.shequ.config)如图所示
18.配置类ForumPostServiceImplConfig的内容如下
package com.mycompany.shequ.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.mycompany.shequ.service.IForumPostService;
import com.mycompany.shequ.service.impl.ForumPostServiceImpl;
@Configuration
public class ForumPostServiceImplConfig {
@Bean(name="forumpostservice")
public IForumPostService forumPostDao(){
return new ForumPostServiceImpl();
}
}
19.在src/main/java下创建配置类AppConfig,包名(com.mycompany.shequ.config)如图所示
20.配置类AppConfig的内容如下
package com.mycompany.shequ.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
@Configuration
@Import({ForumServiceImplConfig.class,ForumPostServiceImplConfig.class})
public class AppConfig {
}
21.在src/test/java下创建测试类AppTest,包名(com.mycompany.shequ.test),如图所示
22.测试类AppTest的内容如下
package com.mycompany.shequ.test;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import com.mycompany.shequ.bean.Forum;
import com.mycompany.shequ.bean.ForumPost;
import com.mycompany.shequ.config.AppConfig;
import com.mycompany.shequ.service.IForumService;
import com.mycompany.shequ.service.IForumPostService;
public class AppTest {
@Test
public void configTest(){
ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
IForumService forumService = (IForumService) context.getBean("forumservice");
Forum forum = forumService.getForumById(1);
System.out.println(forum.getName());
IForumPostService forumPostService = (IForumPostService) context.getBean("forumpostservice");
ForumPost post = forumPostService.getForumPostById(2);
System.out.println(post.getName());
}
}
23.在测试类AppTest的configTest方法上右键运行,输出结果如图所示