Spring IOC创建对象的方式

使用bean去注册类的好处:

spring的ioc控制反转、依赖注入,“控制反转”你不需要再代码中关心何时用new创建类的实例。你用的时候spring会创建这个实例,并且注入到你需要使用的地方。
假如不用spring,你需要在你用到实例的各个地方不停new。交给spring后,你只需要,在代码里直接定义完配置好。用就可以了!

1. 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
        http://www.springframework.org/schema/beans/spring-beans.xsd">

  <bean id="..." class="...">
    <!-- collaboretors and configuration for this bean go here -->
  </bean>
 
  <bean id="..." class="...">
    <!-- collaboretors and configuration for this bean go here -->
  </bean>
</beans>

头部文件说明:https://blog.csdn.net/tanga842428/article/details/78572708?utm_medium=distribute.pc_relevant.none-task-blog-title-2&spm=1001.2101.3001.4242

https://blog.csdn.net/u012049463/article/details/11807587?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-6.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-6.channel_param

 

2. 类、bean文件和测试类

类如下

package com.XX;
public class User { private String name;
  //使用无参构造,默认
public User(){ system.out. println("user的无参构造") } public string getName()( return name; } public void setName(String name){ this name = name; } public void show(){ System.out. println("nane="+name); }

bean文件如下:

<?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
        http://www.springframework.org/schema/beans/spring-beans.xsd">

  <bean id="user" class="package com.XX.User">
  //id后就是对象起的名字,class就是类全名(路径)
    <property name="name" value="XZY">
    //name就是对应类的属性名字,value就是普通属性之间指定属性值,
  </bean>  
</beans>

测试类如下:

import com.XX.User;
import org.springframework.context.Applicationcontext;
import org.springframework.context.support.ClassPathXmlApplicationContext:
public class MyTest{   public static void main(String(] args)(
  //创建容器对象   ApplicationContext context =
new ClassPathXmlApplicationContext(configLocation:"beans.xml")   User user = (User) context.getBean( s:"user")   user show ();
  }
}

有参构造函数的bean文件写法:

<!-- 第一种,下标值! -->
<bean id="user" cLass="com.XX.User">   <constructor-arg index="0" value=”值”/> </bean>

<!-- 第二种方式:通过类型创建,不建议使用。因为可能有多个参数 -->
<bean id="user" cLass="com.XX.User">
  
<constructor-arg type="java.Lang.String" vaLue="值/>
</bean>


<!-- 第三种,直按过参数名来设置-->
<bean id="user" class="com.XX.User">
  <constructor-arg name="name" value="值"/>
</bean>

 补充bean文件里的配置:

 

posted @ 2020-09-08 16:47  物联网女强人  阅读(180)  评论(0编辑  收藏  举报