当前位置: 首页 > news >正文

(五)Spring教程——Spring IoC容器(上)

        在Spring框架中,Bean的实例化和组装都是IoC容器配置元数据完成的。Spring框架提供的容器主要是基于BeanFactory和ApplicationContext两个接口,一种是实现BeanFactory接口的简单容器,另一种是实现ApplicationContext接口的高级容器。

        BeanFactory是比较传统的IoC实现方式,容器内的对象主动使用容器所提供的API来查找自己所依赖的组件。这种方式可以降低对象间的耦合度,同时也增加了对象对容器API的依赖。

        Spring框架可以通过名称、类型和注解这3种方式在BeanFactory接口种进行依赖查找。

        在pom.xml中添加springframework的引用

      <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->

        <dependency>

            <groupId>org.springframework</groupId>

            <artifactId>spring-context</artifactId>

            <version>4.0.0.RELEASE</version>

        </dependency>

        点击右侧的刷新按钮,下载添加的依赖

        在main/resouce文件夹中添加test.xml文件,文件的内容如下

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="test" class="com.example.servlet001.bean.User"><property name="userId" value="1" /><property name="userName" value="用户1" /></bean></beans>

        在com.example.servlet001包中添加名字为bean的软件包,然后在该包中添加User类,User类的内容如下

package com.example.servlet001.bean;public class User {public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getUserId() {return userId;}public void setUserId(String userId) {this.userId = userId;}String userName;String userId;@Overridepublic String toString() {return "User{" +"userName='" + userName + '\'' +", userId='" + userId + '\'' +'}';}}

        添加Demo1.java类测试使用配置的加载User类

package com.example.servlet001;import com.example.servlet001.bean.User;import org.springframework.beans.factory.BeanFactory;import org.springframework.beans.factory.xml.XmlBeanFactory;import org.springframework.core.io.ClassPathResource;public class Demo1 {public static void main(String[] args) {BeanFactory factory=new XmlBeanFactory(new ClassPathResource("test.xml"));User user=(User)factory.getBean("test");System.out.println(user);}}

        运行该测试类后的输出结果为

http://www.lryc.cn/news/350429.html

相关文章:

  • TiDB学习1:TiDB体系架构概览
  • Prometheus 保留或删除标签 labeldrop、labelkeep
  • uniapp中实现保存图片,复制信息功能函数的封装
  • C#【进阶】委托和事件
  • 【class9】人工智能初步(处理单张图片)
  • cgicc开发 (结合jsoncpp)
  • HTML常用标签及属性
  • 【PB案例学习笔记】-03用户名密码校验
  • 设计模式六大原则之 接口分离原则
  • 嵌入式学习——Shell()——day21
  • STM32学习计划
  • 小米15曝光?可能会要稍微涨价
  • 深度优先搜索汇总
  • 【虚拟仿真】Unity3D中实现对大疆无人机遥控器手柄按键响应
  • Python学习之路 | Python基础语法(一)
  • 【已解决】AttributeError: module ‘clip‘ has no attribute ‘load‘
  • 安卓实现连接wesokcet
  • Xinstall助力App下载量精准统计,洞悉推广效果
  • CSS字体修饰
  • 高并发缓存服务的构建要点与陷阱
  • Electron学习笔记(五)
  • 【jest 调试 - vscode debug】
  • 华为OD机试【分奖金】(java)(100分)
  • 27- ESP32-S3 USB虚拟串口(USB-OTG 外设介绍)
  • PostgreSQL查看sql的执行计划
  • macOS Ventura 13如何设置定时重启(命令行)
  • 【sass简介以及如何安装使用】
  • Git版本控制工具的原理及应用详解(四)
  • AI图书推荐:ChatGPT全面指南—用AI帮你更健康、更富有、更智慧
  • C++ | Leetcode C++题解之第92题反转链表II