广西网站建设教程ui包括哪几个方面

张小明 2026/1/5 22:15:18
广西网站建设教程,ui包括哪几个方面,洛阳做公司网站,网站描述代码怎么写Spring IoC 与 DI 核心原理学习笔记 一、什么是 IoC#xff08;Inversion of Control#xff0c;控制反转#xff09; 1. IoC 的思想 IoC#xff08;控制反转#xff09;是一种 设计思想#xff0c;它将原本由程序自身控制的对象创建与依赖管理#xff0c;交给容器来完成…Spring IoC 与 DI 核心原理学习笔记一、什么是 IoCInversion of Control控制反转1. IoC 的思想IoC控制反转是一种设计思想它将原本由程序自身控制的对象创建与依赖管理交给容器来完成。原本对象自己new依赖现在由 IoC 容器统一创建和维护对象之间的关系2. IoC 解决了什么问题降低代码之间的耦合度提高代码的可维护性更方便进行单元测试对象生命周期由容器统一管理二、IoC 在 Spring 中的体现在 Spring 中IoC 容器负责创建 Bean 对象管理 Bean 的生命周期维护 Bean 之间的依赖关系示例传统方式的问题publicclassBookServiceImplimplementsBookService{privateBookDaobookDaonewBookDaoImpl();Overridepublicvoidsave(){bookDao.save();}}问题BookService强依赖BookDaoImpl一旦 DAO 实现发生变化需要修改 Service 源码耦合度过高三、DIDependency Injection依赖注入1. 什么是 DIDI 是 IoC 的具体实现方式用于在运行时将对象所依赖的其他对象注入进来。IoC 是思想DI 是实现2. 为什么需要 DI业务层Service通常依赖 DAO 层的数据支持而 DAO 层在 Spring 中同样作为 Bean 统一管理。IoC 容器负责将Service 与其依赖的 DAO 自动“装配”在一起。四、使用 Spring XML 实现 DI1. 删除new使用 setter 注入Service 类publicclassBookServiceImplimplementsBookService{privateBookDaobookDao;publicvoidsetBookDao(BookDaobookDao){this.bookDaobookDao;}Overridepublicvoidsave(){bookDao.save();}}2. XML 中的配置beanidbookDaoclasscom.itheima.dao.impl.BookDaoImpl/beanidbookServiceclasscom.itheima.service.impl.BookServiceImplpropertynamebookDaorefbookDao//bean这样Service 不再关心 DAO 的具体实现依赖关系由 Spring 容器维护五、Bean 的别名aliasSpring 中的 Bean 是可以起别名的aliasnamebookServicealiasservice/之后可以通过service获取同一个 Bean 实例。六、Bean 的作用范围Scope1. 默认作用域singletonSpring 中Bean 默认是单例的适合被频繁复用的对象如 Service、DAObeanidbookDaoclasscom.itheima.dao.impl.BookDaoImplscopesingleton/2. prototype多例beanidbookDaoclasscom.itheima.dao.impl.BookDaoImplscopeprototype/每次获取都会创建一个新的对象。七、Spring 创建 Bean 的底层原理1. 使用反射创建对象Spring 底层通过反射机制创建 Bean构造方法可以是public或private默认使用无参构造方法⚠️ 如果类中只有有参构造而没有无参构造会抛出异常。八、Spring 中实例化 Bean 的四种方式方式一构造方法常用publicclassBookDaoImplimplementsBookDao{publicBookDaoImpl(){System.out.println(BookDao constructor running...);}Overridepublicvoidsave(){System.out.println(book dao save...);}}beanidbookDaoclasscom.itheima.dao.impl.BookDaoImpl/方式二静态工厂了解工厂类publicclassOrderDaoFactory{publicstaticOrderDaogetOrderDao(){returnnewOrderDaoImpl();}}XML 配置beanidorderDaoclasscom.itheima.factory.OrderDaoFactoryfactory-methodgetOrderDao/方式三实例工厂了解工厂类publicclassUserDaoFactory{publicUserDaogetUserDao(){returnnewUserDaoImpl();}}XML 配置beaniduserDaoFactoryclasscom.itheima.factory.UserDaoFactory/beaniduserDaofactory-beanuserDaoFactoryfactory-methodgetUserDao/方式四FactoryBean推荐FactoryBean 实现类publicclassUserDaoFactoryBeanimplementsFactoryBeanUserDao{OverridepublicUserDaogetObject(){returnnewUserDaoImpl();}OverridepublicClass?getObjectType(){returnUserDao.class;}}XML 配置beaniduserDaoclasscom.itheima.factory.UserDaoFactoryBean/九、总结IoC控制反转是一种设计思想DI依赖注入是 IoC 的具体实现Spring 容器创建对象管理依赖维护生命周期Bean 默认是单例实例化 Bean 有4 种方式推荐使用构造方法FactoryBean掌握 IoC 与 DI是理解 Spring 框架的核心基础。十、实例化 Bean 的三种方式一构造方法常用1. 构造方法实例化说明Spring 在默认情况下通过反射调用类的无参构造方法来创建 Bean 对象。只要类中提供了可访问的构造方法并且存在无参构造Spring 就可以正常完成 Bean 的实例化。2. 示例代码Bean 类publicclassBookDaoImplimplementsBookDao{publicBookDaoImpl(){System.out.println(book constructor is running...);}Overridepublicvoidsave(){System.out.println(book dao save...);}}XML 配置beanidbookDaoclasscom.itheima.dao.impl.BookDaoImpl/3. 注意事项面试高频⚠️如果无参构造方法不存在将抛出异常BeanCreationException原因Spring 默认使用无参构造方法创建对象没有无参构造反射无法实例化 Bean✅ 解决方式提供无参构造方法或使用构造参数注入后续章节十一、Bean 的生命周期重点Bean 的生命周期描述了Bean 从创建到销毁的完整过程。1. Bean 生命周期整体流程1初始化容器阶段创建对象分配内存执行构造方法执行属性注入set方法执行 Bean 初始化方法2使用 Bean 阶段执行业务逻辑方法3销毁容器阶段执行 Bean 销毁方法释放资源简化记忆口诀构造 → 注入 → 初始化 → 使用 → 销毁十二、Bean 销毁时机与容器关闭1. Bean 销毁触发条件容器关闭时才会触发 Bean 的销毁销毁方法不会自动执行必须显式关闭容器2. 容器关闭的两种方式方式一手动关闭容器常见publicclassAppForLifeCycle{publicstaticvoidmain(String[]args){ConfigurableApplicationContextctxnewClassPathXmlApplicationContext(applicationContext.xml);ctx.close();}}调用close()方法立即触发 Bean 的销毁逻辑方式二注册 JVM 关闭钩子推荐ctx.registerShutdownHook();特点JVM 退出前自动关闭 Spring 容器常用于 Web 项目 / 长时间运行程序十三、Bean 生命周期的控制方式1. 通过 XML 配置生命周期方法常用Bean 类publicclassBookDaoImpl{publicvoidinit(){System.out.println(bean init...);}publicvoiddestroy(){System.out.println(bean destroy...);}}XML 配置beanidbookDaoclasscom.itheima.dao.impl.BookDaoImplinit-methodinitdestroy-methoddestroy/2. 通过接口控制生命周期了解初始化接口publicclassBookDaoImplimplementsInitializingBean{OverridepublicvoidafterPropertiesSet(){System.out.println(after properties set...);}}销毁接口publicclassBookDaoImplimplementsDisposableBean{Overridepublicvoiddestroy(){System.out.println(bean destroy...);}}实际开发建议✅ 优先使用init-method/destroy-method❌ 尽量避免侵入业务代码的接口方式十四、小结Spring 默认通过无参构造方法实例化 BeanBean 生命周期五步构造属性注入初始化使用销毁Bean 销毁必须关闭容器生命周期控制方式XML推荐接口了解
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站建设内容介绍logo图标素材网站

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个企业级Syslog集中管理平台,支持多台服务器的日志收集、存储和查询。实现日志的实时监控,设置告警规则(如错误日志超过阈值时触发&#x…

张小明 2026/1/2 18:19:18 网站建设

钟楼网站建设营销活动管理系统

还在为JimuReport报表组件依赖下载失败而夜不能寐吗?当我们满怀期待地在JeecgBoot项目中集成这款强大的数据可视化工具时,却频频遭遇网络超时、仓库无法访问、版本冲突等棘手问题,这种挫败感相信每一位开发者都深有体会。 【免费下载链接】ji…

张小明 2026/1/2 18:19:16 网站建设

大理如何做百度的网站开发板是什么东西

MATLAB数据批量处理、图像处理GUI或appdesigner界面设计。 可进行符合谱要求的随机模拟,生成风速时程。在工程和科研领域,我们常常需要处理大量的数据,并且通过直观的图形界面(GUI)来操作和展示结果。今天就跟大家分享…

张小明 2026/1/3 6:32:58 网站建设

昆山做网站的公司有哪些新乡做网站推广的

1、你会封装自动化测试框架吗? 自动化框架主要的核心框架就是分层PO模式:分别为:基础封装层BasePage,PO页面对象层,TestCase测试用例层。然后再加上日志处理模块,ini配置文件读取模块,unittest…

张小明 2026/1/3 2:45:27 网站建设

才艺多网站建设免费网站正能量

摘要:韩剑不仅具备AI营销顶层战略视野,将AI视为企业“第一工程”,推动原圈科技All in“营销智能体”,更带领团队打造了覆盖市场洞察、内容生成、客户转化与运营全流程的AI智能体矩阵,实现体系化落地。原圈科技服务500品…

张小明 2026/1/2 13:21:34 网站建设