Spring如何借助ClassPathXmlApplicationContext类初始化及获取Bean对象呢?
下文笔者讲述借助ClassPathXmlApplicationContext类初始化bean-并获取Bean对象的方法及示例分享,如下所示
ClassPathXmlApplicationContext简介
Spring中读取xml配置类可使用ClassPathXmlApplicationContext完成 那么这就是ClassPathXmlApplicationContext的功能
ClassPathXmlApplicationContext的使用示例
//初始化Spring容器(上下文对象) ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:spring/applicationContext.xml"); //获取Bean对象 UserService userService = (UserService) applicationContext.getBean("userServiceImpl");例:
1.实体层(Entity层) Entity目录(实体层) 创建用户信息实体类(UserInfo.java) package com.java265.ssm.entity; import org.springframework.stereotype.Component; /** * 用户信息实体类 **/ @Component public class UserInfo { private int userId; //用户ID private String userName; //用户姓名 private String blogUrl; //博客地址 private String remark; //备注 //省略getter与setter方法... } 2.数据访问层(Dao层) 创建用户信息数据库访问接口(UserDao.java) package com.java265.ssm.dao; import com.java265.ssm.entity.UserInfo; /** * 用户信息数据库访问接口 **/ public interface UserDao { /** * 获取用户信息 */ public UserInfo getUserInfo(); } 创建用户信息数据库访问类(UserDaoImpl.java),并标识@Repository注解,实现UserDao接口,实现获取用户信息,模拟读取数据库获取数据方法。 package com.java265.ssm.dao.impl; import com.java265.ssm.dao.UserDao; import com.java265.ssm.entity.UserInfo; import org.springframework.stereotype.Repository; /** * 用户信息数据库访问类 **/ @Repository public class UserDaoImpl implements UserDao { /** * 获取用户信息 */ public UserInfo getUserInfo() { //获取用户信息(模拟读取数据库获取数据) UserInfo userInfo = new UserInfo(); userInfo.setUserId(1); userInfo.setUserName("java265"); userInfo.setBlogUrl("https://www.java265.com"); userInfo.setRemark("java265"); return userInfo; } } 3.业务逻辑服务层(Service层) 创建用户信息业务逻辑接口(UserService.java) package com.java265.ssm.service; import com.java265.ssm.entity.UserInfo; /** * 用户信息业务逻辑接口 **/ public interface UserService { /** * 获取用户信息 */ public UserInfo getUserInfo(); } //实现类(UserServiceImpl.java) package com.java265.ssm.service.impl; import com.java265.ssm.dao.UserDao; import com.java265.ssm.entity.UserInfo; import com.java265.ssm.service.UserService; import org.springframework.stereotype.Service; import javax.annotation.Resource; /** * 用户信息业务逻辑类 **/ @Service public class UserServiceImpl implements UserService { @Resource private UserDao userDao; /** * 获取用户信息 */ public UserInfo getUserInfo() { return userDao.getUserInfo(); } } 4.测试示例 创建用户测试类(UserTest.java) package com.java265.ssm.test; import com.java265.ssm.entity.UserInfo; import com.java265.ssm.service.UserService; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; /** * 用户测试类 **/ public class UserTest { private ApplicationContext applicationContext; private UserService userService; @Before public void setUp() throws Exception { //初始化Spring容器(上下文对象) applicationContext = new ClassPathXmlApplicationContext("classpath:spring/applicationContext.xml"); //获取Bean对象 userService = (UserService) applicationContext.getBean("userServiceImpl"); } @After public void tearDown() throws Exception { System.out.println("测试完成!"); } @Test public void getUserInfo() { //获取用户信息 UserInfo userInfo = userService.getUserInfo(); //打印结果 System.out.println("用户编号:" + userInfo.getUserId()); System.out.println("用户姓名:" + userInfo.getUserName()); System.out.println("网站地址:" + userInfo.getBlogUrl()); System.out.println("备注信息:" + userInfo.getRemark()); } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。