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());
}
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


