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方法上右键运行,输出结果如图所示
本文转自 素颜猪 51CTO博客,原文链接:http://blog.51cto.com/suyanzhu/1909673