首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Spring——IOC创建对象的方式

Spring——IOC创建对象的方式

原创
作者头像
程序员阿杜
修改2021-03-16 10:03:33
修改2021-03-16 10:03:33
5500
举报
文章被收录于专栏:开源君开源君

IOC创建对象的方式

一、 使用无参构造创建对象(默认方式)

创建实体类

注意:属性必须要有set方法,来完成注入

public class User {

代码语言:txt
复制
private String name;
代码语言:txt
复制
public User() {
代码语言:txt
复制
    System.out.println("执行了User类的无参构造方法~");
代码语言:txt
复制
}
代码语言:txt
复制
public User(String name){
代码语言:txt
复制
    this.name = name;
代码语言:txt
复制
    System.out.println("执行了User类的有参构造方法");
代码语言:txt
复制
}
代码语言:txt
复制
//使用无参构造方法时,必须要设置set方法,因为注入时 需要通过set方法注入
代码语言:txt
复制
public void setName(String name) {
代码语言:txt
复制
    this.name = name;
代码语言:txt
复制
}
代码语言:txt
复制
@Override
代码语言:txt
复制
public String toString() {
代码语言:txt
复制
    return "User{" +
代码语言:txt
复制
            "name='" + name + '\'' +
代码语言:txt
复制
            '}';
代码语言:txt
复制
}

}

配置Bean

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

代码语言:txt
复制
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
代码语言:txt
复制
   xsi:schemaLocation="http://www.springframework.org/schema/beans
代码语言:txt
复制
    https://www.springframework.org/schema/beans/spring-beans.xsd">
代码语言:txt
复制
<bean id="user" class="com.test.pojo.User">
代码语言:txt
复制
    <property name="name" value="gyp"/>
代码语言:txt
复制
</bean>

</beans>

测试类

public class MyTest {

代码语言:txt
复制
public static void main(String[] args) {
代码语言:txt
复制
    ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
代码语言:txt
复制
    User user = context.getBean("user", User.class);
代码语言:txt
复制
    System.out.println(user);
代码语言:txt
复制
}

}

二、使用有参构造创建对象

通过下标方式注入(通过index来选择,给有参构造的第几个参数注入)

(1)配置Bean

代码语言:txt
复制
<bean id="user" class="com.test.pojo.User">
代码语言:txt
复制
    <constructor-arg index="0" value="gyp"/>
代码语言:txt
复制
</bean>

通过名字注入

(1)配置Bean

代码语言:txt
复制
<bean id="user" class="com.test.pojo.User">
代码语言:txt
复制
    <constructor-arg name="name" value="gyp"/>
代码语言:txt
复制
</bean>

通过类型注入(不建议使用!因为当类里面有两个相同类型的属性时,无法给属性注入)

(1)配置Bean

代码语言:txt
复制
<bean id="user" class="com.test.pojo.User">
代码语言:txt
复制
    <constructor-arg type="java.lang.String" value="gyp"/>
代码语言:txt
复制
</bean>

总结:在加载配置文件的时候,IOC就已经创建好了对象!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档