springIOC使用xml装配JavaBean对象

2023-05-16

在一个maven工程下,在pom.xml中导入spring依赖和相关的配置

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>MavenTest</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>SpringIOC</module>
        <module>sgsystem</module>
        <module>test</module>
    </modules>

    <properties>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>
    <!--  依赖都是放入dependencies  -->
    <dependencies>
        <!-- 每一依赖 dependency标记-->
        <!--   Spring依赖  -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.7.RELEASE</version>
        </dependency>


        <dependency>
            <groupId>javax.annotation</groupId>
            <artifactId>javax.annotation-api</artifactId>
            <version>1.2</version>
        </dependency>

    </dependencies>

</project>

新建一个配置类,在类的上方使用@configuration注解标识这是spring容器;使用@ComponentScan注解让所有被修饰为@Component的类纳入容器管理

@Configuration
// basePackages 指定从哪个包开始扫描组件
@ComponentScan(basePackages = "com.project")
// basePackageClasses 指定从哪个类所在的包开始扫描
//@ComponentScan(basePackageClasses = ApplicationConfig.class)
public class ApplicationConfig {

}

新建一个学生Bean类,按照javaBean的规范去完成即可,这里为了方便,只展示了属性。注意别忘了给这个类上加上一个@Component注解,这样才会被纳入spring容器管理

//    写学生类包含属性(id、姓名、年龄、性别)
    private int sutId;
    private String name;
    private int age;
    private String gender;

以上完成之后,在resources目录下,书写装配javaBean文件,文件名是Application.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"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
    <context:property-placeholder location="db.properties"/>

 属性注入 是通过set方法进行注入 此时会用到property标签-->
<!--               name属性指代对象中的属性名称,value指代属性值

    <bean id="stu" class="com.project.bean.StudentBean">
        <property name="sutId" value="1"></property>11
        <property name="age" value="30"></property>
        <property name="gender" value="男"></property>
        <property name="name" value="张三"></property>
    </bean>




</beans>

构造器注入

<bean>

 通过构造方法进行注入,使用constructor-arg标签,-->
<!--            当只提供value属性值时,值的设置顺序要和构造方法一致->

 <constructor-arg value="四川成都成华区" index="4"></constructor-arg>
 <constructor-arg value="男" index="2"></constructor-arg>
<constructor-arg value="10" index="3"></constructor-arg>
 <constructor-arg value="1" index="0"></constructor-arg>
 <constructor-arg value="李四" index="1"></constructor-arg>



</bean>

接下来就可以测试了

    // 根据配置文件 创建容器对象
       ApplicationContext context =
                new ClassPathXmlApplicationContext("Application.xml");
        // 通过getBean方法获取bean对象
        // 通过bean标记的id值获取stu对象
    StudentBean stu = (StudentBean) context.getBean("stu");

总结:springIOC和IC

IOC:Inversion Of Control,即控制反转,是一种设计思想。

将主动创建对象的方式反转成被动接受。

实现代码的解耦。

IC:

Dependency injection,即依赖注入。

依赖注入是IOC的一种实现。

在Spring中交由容器来管理所有对象。

什么是控制反转呢?

控制反转--就是依赖倒置原则的一种代码设计的思路。

采用的方法就是所谓的依赖注入(DI) 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

springIOC使用xml装配JavaBean对象 的相关文章

随机推荐

  • iphone恢复模式_如何阻止iPhone的人像模式制作多个文件

    iphone恢复模式 The iPhone 7 Plus Portrait Mode is really awesome In the right circumstances it makes it possible to take por
  • SpringBoot+LayUI+MybatisPlus 前后端分离 实现数据表格下拉框功能

    前言 xff1a 小伙伴们 xff0c 大家好 xff0c 我是狂奔 蜗牛rz xff0c 当然你们可以叫我蜗牛君 xff0c 我是一个学习Java快一年时间的小菜鸟 xff0c 同时还有一个伟大的梦想 xff0c 那就是有朝一日 xff0
  • Linux网络配置

    目录 1 查看网络配置 1 1ifconfig命令 查看网络接口信息 1 2 hostname 查看主机名称 1 2 1查看主机名 1 2 2修改主机名称 1 3route 查看路由表条目 1 4 netstat 查看网络连接情况 1 5
  • KVM virt-manager 启动不了 cannot open display,和中文乱码

    首先启动不了 如下情况 xff0c 启动不了 先重启虚拟机 span class token punctuation span root 64 kvm1 span class token operator span span class t
  • python使用request+xpath爬取豆瓣电影数据

    python使用request 43 xpath爬取豆瓣电影 背景话不多说上代码 背景 由于毕设需要用到电影相关的数据 xff0c 在网上想查找一个可以爬电影的教程 xff0c 但是基本上所有的教程都是爬的豆瓣top250 xff0c 并没
  • IDEA mvn阿里云镜像设置 保姆级教程

    设置 打开 文件 设置 搜索mvn 修改用户设置文件 和 本地仓库 路径为自己喜欢的目录下 以下为我此处的文件 新项目设置 xff08 创建新项目默认设置 xff09 打开 文件 新项目设置 新项目的设置 把刚才的设置设置一遍 文件 地址
  • 解压码

    BN00001 22kke BN00002 88cde BN00003 00ike BN00004 76cdb BN00005 09dbm BN00006 0mndc BN00007 cd78d BN00008 bdmf8 BN00009
  • 保险项目业务流程

    1 整个项目分为四分模块 xff1a 信息采集模块 信息验证 审批 生成合同 xff08 开单 xff09 信息采集模块 xff1a 包括购买保险产品 xff0c 客户个人信息 1 纸质文档给客户填写 xff0c 在回来录入系统 2 客户直
  • IDEA使用maven自定义archetype

    标题自定义archetype 在pom文件中添加archetype plugin span class token generics span class token punctuation lt span plugin span clas
  • 自定义Perperties文件内容读取

    新建properties文件放在resources目录下 properties文件内容 url span class token operator 61 span jdbc span class token operator span my
  • 使用CSS中的Hover控制显示子元素或者兄弟元素

    lt DOCTYPE html gt lt html lang 61 34 en 34 gt lt head gt lt meta charset 61 34 UTF 8 34 gt lt meta name 61 34 viewport
  • iphone表情显示问号_如何在iPhone上搜索特定的表情符号

    iphone表情显示问号 Most of us use emoji on our iPhone but until recently finding the right one has been tricky Luckily startin
  • maven项目中的jdbc连接步骤

    在maven项目pom xml中到入驱动包 xff08 以下是驱动包代码 xff09 lt dependencies gt lt https mvnrepository com artifact mysql mysql connector
  • executeUpdate()与executeQuery()的使用

    增 删 改 用executeUpdate xff08 xff09 返回值为int型 xff0c 表示被影响的行数 例子 查用executeQuery 返回的是一个集合 next xff08 xff09 表示 指针先下一行 xff0c 还有f
  • Access denied for user ''@'localhost' (using password: YES)错误解决方法

    远程登录被拒绝 xff0c 要改一个表数据的属性让他可以远程登录 解决方法如下 xff0c 执行命令 xff1a mysql gt use mysql mysql gt select host user from user 查看结果是不是r
  • leetcode部分数据库+sqlzoo练习题

    175 组合两个表 SQL架构 表1 Person 43 43 43 列名 类型 43 43 43 PersonId int FirstName varchar LastName varchar 43 43 43 PersonId 是上表主
  • ubuntu下手动安装gnome插件

    ubuntu下手动安装gnome插件 span class token comment 下载环境 span sudo apt span class token operator span span class token keyword g
  • 类和对象的理解

    类和对象的关系 是java中两个重要的概念 xff0c 简单一句话将就是 xff1a 类是对象的模板 xff0c 对象是类的实例 比如 xff1a 设计车的图纸是类 xff0c 然后比亚迪 本田 奔驰这些车 xff08 对象 xff09 都
  • java设计模式的几种体现方式

    1 单例模型 有时候在我的设计中 xff0c 所有的类只共享一个实例 xff0c 那么这时候就需要设计一个单实例的类 思路是将这个类构造器私有化 xff0c 这样外部就无法直接创建对象 xff0c 然后提供公有的静态方法 xff0c 让外部
  • springIOC使用xml装配JavaBean对象

    在一个maven工程下 xff0c 在pom xml中导入spring依赖和相关的配置 lt xml version 61 34 1 0 34 encoding 61 34 UTF 8 34 gt lt project xmlns 61 3