Spring初识——IOC 操作 Bean 管理(基于 xml 方式)

简介: 本文简单总结了在Spring5学习初期对IOC操作的理解

什么是bean管理?

- Bean 管理指的是两个操作:

(1)Spring 创建对象

(2)Spirng 注入属性

- Bean 管理操作有两种方式

(1)基于 xml 配置文件方式实现

(2)基于注解方式实现

# 一.基于Xml方式创建对象

```

//定义User类

public class User {  

}

```

1. 在 spring 配置文件中,使用 bean 标签,标签里面添加对应属性,就可以实现对象创建.

1. 在 bean 标签有很多属性,介绍常用的属性

     -  id 属性:唯一标识

     -  class 属性:类全路径(包类路径)

1. 创建对象时候,默认也是执行无参数构造方法完成对象创建

```

<!--配置User类的对象创建-->

<bean id="user" class="com.spring5.User"></bean>

```

# 二.基于 xml 方式注入属性

DI:依赖注入,就是注入属性

###### 1. 第一种注入方式:使用 set 方法进行注入

```

//定义学生类和对应的set方法

private int age;

 

private String name;

 

public class Student {

   public void setAge(int age) {

       this.age = age;

   }

   public void setName(String name) {

       this.name = name;

   }

}

```

在 spring 配置文件进行如下配置

```

<!--使用 property 完成属性注入

name:类里面属性名称

value:向属性注入的值

-->

<bean  id="student" class="com.spring5.Student">

   <property name="age" value="18"></property>

   <property name="name" value="张三"></property>

</bean>

```

###### 2. 第二种注入方式:使用有参数构造进行注入

```

//定义学生类和对应的带参构造方法

public class Student {

   private int age;

   private String name;

   public Student(int age, String name) {

       this.age = age;

       this.name = name;

   }

}

```

在 spring 配置文件进行如下配置

```

<!-- 有参数构造注入属性

使用constructor-arg完成属性注入-->

<bean id="student" class="com.spring5.Student">

   <constructor-arg name="age" value="18"></constructor-arg>

   <constructor-arg name="name" value="李四"></constructor-arg>

</bean>

```

# 三.基于xml 注入其他类型属性

###### 1. 字面量

 (1)null 值

```

<!--null 值-->

<property name="address">

<null/>

</property>

```

 (2)属性值包含特殊符号(使用转义字符或CDATA域实现)

```

<!--属性值包含特殊符号

1 把<>进行转义 < >

2 把带特殊符号内容写到 CDATA

-->

<property name="address">

<value><![CDATA[<<南京>>]]></value>

</property>

```

###### 2.外部bean

(1)创建两个类 service 类和 dao 类

(2)在 service 调用 dao 里面的方法

(3)在 spring 配置文件中进行配置

```

//创建Dao接口

public interface UserDao {

}

```

```

//创建Dao接口实现类

public class UserDaoImpl implements  UserDao {

 

}

```

在 spring 配置文件进行如下配置

```

<!--1 service 和 dao 对象创建-->

<bean id="userService" class="com.atguigu.spring5.service.UserService">

<!--注入 userDao 对象

name 属性:类里面属性名称

ref 属性:创建 userDao 对象 bean 标签 id 值

-->

<property name="userDao" ref="userDaoImpl"></property>

</bean>

<bean id="userDaoImpl" class="com.atguigu.spring5.dao.UserDaoImpl"></bean>

```

###### 3.内部bean

```

//员工类

public class Emp {

private  String ename;

private  String gender;

private Dept dept;

   public Dept getDept() {

       return dept;

   }

   public void setDept(Dept dept) {

       this.dept = dept;

   }

   public void setEname(String ename) {

       this.ename = ename;

   }

   public void setGender(String gender) {

       this.gender = gender;

   }

 

}

```

```

//部门类

public class Dept {

   private String dname;

   public void setDname(String dname) {

       this.dname = dname;

   }  

}

```

在 spring 配置文件进行如下配置

```

<bean id="emp" class="com.spring5.bean.Emp">

   <property name="ename" value="张三"></property>

   <property name="gender" value="女"></property>

   <property name="dept" >

       <bean id="dept" class="com.spring5.bean.Dept">

           <property name="dname" value="安保部"></property>

       </bean>

   </property>

</bean>

```

# 四.基于xml 注入集合属性

###### 1. 注入普通属性值

创建Stu类,定义数组、list、map、set 类型属性,生成对应 set 方法

```

public class Stu {

//1 数组类型属性

private String[] courses;

//2 list 集合类型属性

private List<String> list;

//3 map 集合类型属性

private Map<String,String> maps;

//4 set 集合类型属性

private Set<String> sets;

public void setSets(Set<String> sets) {

this.sets = sets;

}

public void setList(List<String> list) {

this.list = list;

}

public void setMaps(Map<String, String> maps) {

this.maps = maps;

}

}

```

在 spring 配置文件进行如下配置

```

<property name="courses">

           <array>

               <value>java课程</value>

               <value>数据库课程</value>

           </array>

       </property>

       <property name="list">

           <list>

               <value>张三</value>

               <value>李四</value>

           </list>

       </property>

       <property name="maps">

           <map>

               <entry key="JAVA" value="java"></entry>

               <entry key="PHP" value="php"></entry>

           </map>

       </property>

        <property name="sets">

        <set>

            <value>mysql</value>

            <value>redis</value>

        </set>

        </property>

   </bean>

</beans>

```

###### 2.在集合里面设置对象类型值

```

//创建Student类

public class Student {

   private List<Course> list;

public void setCourseList(List<Course> courseList) {

   this.courseList = courseList;

}  

   }

```

```

//定义Sources类

public class Course {

   private  String cname;

   public void setCname(String cname) {

       this.cname = cname;

   }

 

```

在 spring 配置文件进行如下配置

```

<!--创建多个 course 对象-->

<bean id="course1" class="com.atguigu.spring5.collectiontype.Course">

<property name="cname" value="Spring5 框架"></property>

</bean>

<bean id="course2" class="com.atguigu.spring5.collectiontype.Course">

<property name="cname" value="MyBatis 框架"></property>

</bean>

<!--注入 list 集合类型,值是对象-->

<property name="courseList">

<list>

<ref bean="course1"></ref>

<ref bean="course2"></ref>

</list>

</property>

```

目录
打赏
0
0
0
0
1
分享
相关文章
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录—— logback.xml 配置文件解析
本文解析了 `logback.xml` 配置文件的详细内容,包括日志输出格式、存储路径、控制台输出及日志级别等关键配置。通过定义 `LOG_PATTERN` 和 `FILE_PATH`,设置日志格式与存储路径;利用 `&lt;appender&gt;` 节点配置控制台和文件输出,支持日志滚动策略(如文件大小限制和保存时长);最后通过 `&lt;logger&gt;` 和 `&lt;root&gt;` 定义日志级别与输出方式。此配置适用于精细化管理日志输出,满足不同场景需求。
83 1
微服务——SpringBoot使用归纳——Spring Boot集成MyBatis——基于 xml 的整合
本教程介绍了基于XML的MyBatis整合方式。首先在`application.yml`中配置XML路径,如`classpath:mapper/*.xml`,然后创建`UserMapper.xml`文件定义SQL映射,包括`resultMap`和查询语句。通过设置`namespace`关联Mapper接口,实现如`getUserByName`的方法。Controller层调用Service完成测试,访问`/getUserByName/{name}`即可返回用户信息。为简化Mapper扫描,推荐在Spring Boot启动类用`@MapperScan`注解指定包路径避免逐个添加`@Mapper`
35 0
Spring IOC—基于注解配置和管理Bean 万字详解(通俗易懂)
Spring 第三节 IOC——基于注解配置和管理Bean 万字详解!
172 26
什么是Spring IOC 和DI ?
IOC : 控制翻转 , 它把传统上由程序代码直接操控的对象的调用权交给容 器,通过容器来实现对象组件的装配和管理。所谓的“控制反转”概念就是对组件对象控制权的转 移,从程序代码本身转移到了外部容器。 DI : 依赖注入,在我们创建对象的过程中,把对象依赖的属性注入到我们的类中。
【SpringFramework】Spring IoC-基于XML的实现
本文主要讲解SpringFramework中IoC和DI相关概念,及基于XML的实现方式。
128 69
【SpringFramework】Spring IoC-基于注解的实现
本文主要记录基于Spring注解实现IoC容器和DI相关知识。
76 21
【Spring】获取Bean对象需要哪些注解
@Conntroller,@Service,@Repository,@Component,@Configuration,关于Bean对象的五个常用注解
103 12
【Spring】IoC和DI,控制反转,Bean对象的获取方式
IoC,DI,控制反转容器,Bean的基本常识,类注解@Controller,获取Bean对象的常用三种方式
讲解SSM的xml文件
本文详细介绍了SSM框架中的xml配置文件,包括springMVC.xml和applicationContext.xml,涉及组件扫描、数据源配置、事务管理、MyBatis集成以及Spring MVC的视图解析器配置。
136 1
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
这篇文章是Spring5框架的实战教程,主要介绍了如何在Spring的IOC容器中通过XML配置方式使用外部属性文件来管理Bean,特别是数据库连接池的配置。文章详细讲解了创建属性文件、引入属性文件到Spring配置、以及如何使用属性占位符来引用属性文件中的值。
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)