热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

springioc的简单实例及bean的作用域属性解析

这篇文章主要介绍了springioc的简单实例及bean的作用域属性解析,具有一定借鉴价值,需要的朋友可以参考下

IoC(Inversion if Control)-控制反转是Spring俩大核心技术之一,IoC一般分为俩种类型:依赖注入(Dependency Injection,简称DI)和依赖查找(Dependency Lookup)

使用示例:

1、新建工程并导入Spring相关jar包。

2、新建数据访问层及业务逻辑层

代码结构:

代码示例:

/**
 * 实体Bean
 * @author BC
 *
 */
public class User {
	private Integer id;
	private String userName;
	private String passWord;
	//get set方法略
}
/**
 * 数据访问层接口
 * @author BC
 *
 */
public interface UserDaoInterface {
	/**查询所有用户信息*/
	public List getUserList();
}
/**
 * 数据访问层实现类
 * @author BC
 *
 */
public class UserDaoImpl implements UserDaoInterface {
	/**模拟数据库数据*/
	private List userList;
	public UserDaoImpl() {
		userList = new ArrayList();
		User u = new User(1, "张三", "123");
		userList.add(u);
		u = new User(2, "李四", "456");
		userList.add(u);
		u = new User(3, "王五", "789");
		userList.add(u);
		u = new User(4, "赵六", "233");
		userList.add(u);
	}
	@Override
	 public List getUserList() {
		return userList;
	}
}
/**
 * 业务逻辑层接口
 * @author BC
 *
 */
public interface UserBizInterface {
	/**查询所有用户信息*/
	public List getUserList();
}
/**
 * 业务逻辑层实现类
 * @author BC
 *
 */
public class UserBizImpl implements UserBizInterface {
	/**使用Spring注入*/
	private UserDaoInterface userDao;
	@Override
	 public List getUserList() {
		return userDao.getUserList();
	}
	/**通过set方法注入,因此需要注入的属性必须设置set方法*/
	public void setUserDao(UserDaoInterface userDao) {
		this.userDao = userDao;
	}
	public UserDaoInterface getUserDao() {
		return userDao;
	}
}

3、编写applicationContext.xml配置文件

表头信息:

<&#63;xml version="1.0" encoding="UTF-8"&#63;>

配置代码:

 
 
  
 
  
  
 

测试代码:

public class UserBizTest {
	private ApplicationContext ctx;
	@Before
	 public void load() {
		//读取applicationContext.xml配置文件
		ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
	}
	@Test
	 public void getUserListTest() {
		//创建一个业务逻辑层对象
		UserBizInterface userDao = (UserBizInterface) ctx.getBean("userBiz");
		//调用方法获取用户信息
		List userList = userDao.getUserList();
		//遍历集合
		for (User user : userList) {
			System.out.println(user.getId() + "|" + user.getUserName() + "|" +user.getPassWord());
		}
	}
}

上面的实例代码中,我们使用的是set方法注入,Spring的注入方式有许多种,注入的属性类型也有很多情况,详细请参考:

浅谈spring ioc的注入方式及注入不同的数据类型

关于bean的作用域

scope=”singleton” 默认,表示在Spring容器中仅存在一个共享的Bean实例
scope=”prototype” 每次从容器中都获取一个新的实例
scope=”request” 每次Http请求都会创建一个新的Bean实例
scope=”session” 同一个Http请求共享一个Bean实例
scope=”global session” 同一个全局Session共享一个Bean实例

总结

以上就是本文关于spring ioc的简单实例及bean的作用域属性解析的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!


推荐阅读
  • 本文深入探讨了企业级开发框架NHibernate和Spring.NET的关键特性之一——面向方面编程(AOP)。文章不仅介绍了AOP的基本概念及其如何增强面向对象编程(OOP),还详细说明了Spring.NET中AOP的具体应用,包括事务管理和自定义方面的实现。 ... [详细]
  • 设计模式笔记12:迭代器模式(Iterator Pattern) ... [详细]
  • 本文详细解析了Tomcat服务器的核心配置文件server.xml,包括其主要功能、结构组成及各标签的具体作用。 ... [详细]
  • 增强Tomcat安全性:有效防止后台攻击
    在构建可靠的系统架构时,确保安全是至关重要的一步。本文将重点探讨Tomcat这一流行的开源Web应用服务器的安全配置,以帮助开发者和运维人员提高其应用程序的安全性。 ... [详细]
  • 本文探讨了缓存系统中的两个关键问题——缓存穿透与缓存失效时的雪崩效应,以及这些问题的解决方案。此外,文章还介绍了数据处理、数据库拆分策略、缓存优化、拆分策略、应用架构演进及通信协议的选择等内容。 ... [详细]
  • 本文介绍了一种通过自定义工具类实现Spring的ApplicationContextAware接口来获取Spring容器中Bean的方法,并提供了详细的代码示例和配置说明。 ... [详细]
  • Pikachu平台SQL注入漏洞详解
    本文详细介绍了SQL注入漏洞的基本原理、攻击流程、不同类型注入点的识别与利用方法,以及基于union联合查询、报错信息、布尔盲注、时间盲注等多种技术手段的信息获取方式。同时,探讨了如何通过SQL注入获取操作系统权限,以及HTTP Header注入和宽字节注入等高级技巧。最后,提供了使用SQLMap自动化工具进行漏洞测试的方法和常见的SQL注入防御措施。 ... [详细]
  • mybatis相关面试题 ... [详细]
  • 深入理解SAP Fiori及其核心概念
    本文详细介绍了SAP Fiori的基本概念、发展历程、核心特性、应用类型、运行环境以及开发工具等,旨在帮助读者全面了解SAP Fiori的技术框架和应用场景。 ... [详细]
  • Python安全实践:Web安全与SQL注入防御
    本文旨在介绍Web安全的基础知识,特别是如何使用Python和相关工具来识别和防止SQL注入攻击。通过实际案例分析,帮助读者理解SQL注入的危害,并掌握有效的防御策略。 ... [详细]
  • 这个报错出现在userDao里面,sessionfactory没有注入。解决办法:spring整合Hibernate使用test测试时要把spring.xml和spring-hib ... [详细]
  • 本文详细介绍如何在Spring Boot项目中集成和使用JPA,涵盖JPA的基本概念、Spring Data JPA的功能以及具体的操作步骤,帮助开发者快速掌握这一强大的持久化技术。 ... [详细]
  • 本文详细介绍了C++标准模板库(STL)中各容器的功能特性,并深入探讨了不同容器操作函数的异常安全性。 ... [详细]
  • 本文探讨了在Android应用程序开发过程中动态管理Fragment的方法,包括动态添加和切换Fragment,以及如何实现平滑的过渡动画。文章通过一个具体的案例——订单管理系统,详细介绍了实现步骤和技术细节。 ... [详细]
  • 本文介绍如何创建一个简单的Android桌面小部件,通过显示两个文本框来展示基本功能。提供代码下载链接及详细步骤。 ... [详细]
author-avatar
万花_筒乙姬睦美
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有