热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

spring基于ioc的配置文件方式

概念Spring是一个开源的轻量级框架spring核心主要有两部分(1.)aop:面向切面编程,扩展功能不是修改源代码实现(

概念

  1. Spring是一个开源的轻量级框架
  2. spring核心主要有两部分
    (1.)aop:面向切面编程,扩展功能不是修改源代码实现
    (2.)ioc:控制反转,比如有一个类,在类里面有方法(不是静态方法),调用类里面的方法,创建类的对象,使用对象调用方法,创建类对象的过程,需要new出来对象
    ioc是把对象的创建不是通过new方式实现,而是交给spring配置创建类对象
  3. spring是一个一站式的轻量级框架
    (1.)spring在javaee三层结构中,每一层都提供不同的解决技术
    ----web层:springMVC
    ----service:spring的ioc
    ----dao层:spring的jdbcTemplate

ioc(控制反转)的操作

  • 把对象的创建直接交给spring进行管理
  • ioc的操作有两部分
    • 基于ioc的配置文件方式
    • 基于ioc的注解方式
  • ioc的底层原理

ioc底层原理使用技术
(1.)xml配置文件
(2.)dom4j解析xml
(3.)工厂设计模式
(4.)反射


img_a36b21c4c8125f1b7c1c67bef5db3d85.png
image.png

ioc操作步骤

  • 第一步 导入jar包
  • 创建类,在类里面创建方法
  • 创建spring配置文件,配置创建类
    • spring核心位置和文件名不是固定的,建议写在src目录下,文件名为ApplicationContext.xml
    • 引入schema约束
    • 创建 配置对象
  • 写测试

/*
分两步:
1.加载spring配置文件,根据配置文件创建对象
*/
ApplicationContext context = new ClassPathXmlApplicationContext("ApplicationContext.xml");
//第二步:得到配置创建对象
/*
例如:User user = context.getBean("user");
*/

属性注入

创建对象的时候,向类里面属性里面设置值
属性注入方式:(Java方式)
1.有参数的构造函数
2.set方法
3.使用接口注入

//接口注入
public interface Dao{public void delete(String name);
}
public class DaoImpl implements Dao{private String name;public void delete(String name){this.name = name;}
}

在sping中支持前两种方式(set、有参构造)







注入对象类型属性(重点)

  • 创建service类和dao类
    • 在service得到dao对象(new)
  • 具体实现过程
    • 在service里面把dao作为类型属性private UserDao userDao;
    • 生成dao类型set属性的方法public void setUserDao(UserDO UserDO){this.userDao = userDao}
    • 注入类型的对象属性






IOC和DI的区别

IOC:
控制反转,把对象创建交给spring进行配置
DI:
依赖注入,创建对象中向类里面的属性中设置值
关系:
依赖注入不能单独存在,需要对象创建的基础上存在(在ioc基础上完成操作)

spring整合web项目原理

加载spring核心配置文件
ApplicationContext context = new ClassPathXmlApplicationContext("ApplicationContext.xml");
new对象,功能可以实现,效率很低
实现思想:把加载配置文件和创建对象过程,在服务器启动时候完成
实现原理:
1.servletContext对象
2.监听器
3.具体使用
1).在服务器启动时候,为每个项目创建一个servletContext对象
2).在ServletContext对象创建的时候,使用监听器可以监听到具体的ServlectContext对象在什么时候创建
3).使用监听器监听到ServletContext对象创建时候
(1).加载spring文件,把配置文件的配置对象创建
(2).把创建出来的对象放到ServletContext域对象里面(setAttribute方法)
4).获取对象的时候,到ServletContext域对象得到(getAttribute方法)




推荐阅读
  • Spring框架的核心组件与架构解析 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • Spring框架中枚举参数的正确使用方法与技巧
    本文详细阐述了在Spring Boot框架中正确使用枚举参数的方法与技巧,旨在帮助开发者更高效地掌握和应用枚举类型的数据传递,适合对Spring Boot感兴趣的读者深入学习。 ... [详细]
  • 在探讨Hibernate框架的高级特性时,缓存机制和懒加载策略是提升数据操作效率的关键要素。缓存策略能够显著减少数据库访问次数,从而提高应用性能,特别是在处理频繁访问的数据时。Hibernate提供了多层次的缓存支持,包括一级缓存和二级缓存,以满足不同场景下的需求。懒加载策略则通过按需加载关联对象,进一步优化了资源利用和响应时间。本文将深入分析这些机制的实现原理及其最佳实践。 ... [详细]
  • 如何撰写适应变化的高效代码:策略与实践
    编写高质量且适应变化的代码是每位程序员的追求。优质代码的关键在于其可维护性和可扩展性。本文将从面向对象编程的角度出发,探讨实现这一目标的具体策略与实践方法,帮助开发者提升代码效率和灵活性。 ... [详细]
  • 在Java Web服务开发中,Apache CXF 和 Axis2 是两个广泛使用的框架。CXF 由于其与 Spring 框架的无缝集成能力,以及更简便的部署方式,成为了许多开发者的首选。本文将详细介绍如何使用 CXF 框架进行 Web 服务的开发,包括环境搭建、服务发布和客户端调用等关键步骤,为开发者提供一个全面的实践指南。 ... [详细]
  • 在当前的软件开发领域,Lua 作为一种轻量级脚本语言,在 .NET 生态系统中的应用逐渐受到关注。本文探讨了 Lua 在 .NET 环境下的集成方法及其面临的挑战,包括性能优化、互操作性和生态支持等方面。尽管存在一定的技术障碍,但通过不断的学习和实践,开发者能够克服这些困难,拓展 Lua 在 .NET 中的应用场景。 ... [详细]
  • 《Spring in Action 第4版:全面解析与实战指南》
    《Spring in Action 第4版:全面解析与实战指南》不仅详细介绍了Spring框架的核心优势,如简洁易测试、低耦合特性,还深入探讨了其轻量级和最小侵入性的设计原则。书中强调了声明式编程的优势,并通过基于约定的方法简化开发流程。此外,Spring的模板机制有效减少了重复代码,而依赖注入功能则由容器自动管理,确保了应用的灵活性和可维护性。 ... [详细]
  • 本文作为探讨PHP依赖注入容器系列文章的开篇,将首先通过具体示例详细阐述依赖注入的基本概念及其重要性,为后续深入解析容器的实现奠定基础。 ... [详细]
  • R语言中向量(Vector)数据类型的元素索引与访问:利用中括号[]和赋值操作符在向量末尾追加数据以扩展其长度
    在R语言中,向量(Vector)数据类型的元素可以通过中括号 `[]` 进行索引和访问。此外,利用中括号和赋值操作符,可以在向量的末尾追加新数据,从而动态地扩展向量的长度。这种方法不仅简洁高效,还能灵活地管理向量中的数据。 ... [详细]
  • 本指南介绍了如何在ASP.NET Web应用程序中利用C#和JavaScript实现基于指纹识别的登录系统。通过集成指纹识别技术,用户无需输入传统的登录ID即可完成身份验证,从而提升用户体验和安全性。我们将详细探讨如何配置和部署这一功能,确保系统的稳定性和可靠性。 ... [详细]
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • PHP预处理常量详解:如何定义与使用常量 ... [详细]
  • 在使用SSH框架进行项目开发时,经常会遇到一些常见的问题。例如,在Spring配置文件中配置AOP事务声明后,进行单元测试时可能会出现“No Hibernate Session bound to thread”的错误。本文将详细探讨这一问题的原因,并提供有效的解决方案,帮助开发者顺利解决此类问题。 ... [详细]
  • 在基于.NET框架的分层架构实践中,为了实现各层之间的松散耦合,本文详细探讨了依赖注入(DI)和控制反转(IoC)容器的设计与实现。通过合理的依赖管理和对象创建,确保了各层之间的单向调用关系,从而提高了系统的可维护性和扩展性。此外,文章还介绍了几种常见的IoC容器实现方式及其应用场景,为开发者提供了实用的参考。 ... [详细]
author-avatar
pfm4191006
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有