Spring中的IOC和DI(“最易懂得Spring学习”)(一)

简介: IOC和DI四、IOC创建对象的方式

四、IOC创建对象的方式


1、使用无参构造创建对象–默认

<!--默认使用无参构造-->
<bean id="user" class="com.hxl.pojo.User">
    <property name="name" value="王木木"/>
</bean>


2、使用有参构造创建对象(三种方法)

<!--第一种,下标赋值-->
<bean id="user" class="com.hxl.pojo.User">
    <!--这里的0代表第一个参数-->
    <constructor-arg index="0" value="王木木Sir"/>
</bean>
<!--第二种:通过类型创建,
    不建议使用,因为如果有两个String类型就会出错-->
<bean id="user" class="com.hxl.pojo.User">
    <constructor-arg type="java.lang.String" value="wangmumu"/>
</bean>
<!--第三种:直接通过参数名来设置-->
<bean id="user" class="com.hxl.pojo.User">
    <constructor-arg name="name" value="王木木"/>
</bean>


Spring在创建bean的时候就已经给我们实例化了。也就是说只要在bean中配置了,那在运行的时候不管用不用,到会实例化(创建出一个无参构造对象)


总结:在配置文件加载的时候,容器中管理的对象已经初始化了


代码:

package com.hxl.pojo;
public class User {
    private String name;
    public User() {
        System.out.println("User的无参构造!");
    }
    public User(String name) {
        this.name = name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getName() {
        return name;
    }
    public void show(){
        System.out.println(this.name);
    }
    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                '}';
    }
}

使


<?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="com.hxl.pojo.User">
    <!--这里的0代表第一个参数-->
       <constructor-arg index="0" value="王木木Sir"/>
    </bean>
    <!--第二种:通过类型创建,-->
    <!--不建议使用,因为如果有两个String类型就会出错-->
    <bean id="user" class="com.hxl.pojo.User">
        <constructor-arg type="java.lang.String" value="wangmumu"/>
    </bean>
    <!--第三种:直接通过参数名来设置-->
    <bean id="user" class="com.hxl.pojo.User">
        <constructor-arg name="name" value="王木木"/>
    </bean>
</beans>
import com.hxl.pojo.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MyTest {
    public static void main(String[] args) {
        //Spring容器么,就类似于婚介网站
        ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
        User user = (User) context.getBean("user");
        user.show();
    }
}
//下面两个方法都可以实现,一个是强转,一个是
User user = (User) context.getBean("user");
User user = context.getBean("user", User.class);


相关文章
|
8月前
|
搜索推荐 JavaScript Java
基于springboot的儿童家长教育能力提升学习系统
本系统聚焦儿童家长教育能力提升,针对家庭教育中理念混乱、时间不足、个性化服务缺失等问题,构建科学、系统、个性化的在线学习平台。融合Spring Boot、Vue等先进技术,整合优质教育资源,提供高效便捷的学习路径,助力家长掌握科学育儿方法,促进儿童全面健康发展,推动家庭和谐与社会进步。
|
XML Java 测试技术
Spring IOC—基于注解配置和管理Bean 万字详解(通俗易懂)
Spring 第三节 IOC——基于注解配置和管理Bean 万字详解!
1025 26
|
8月前
|
XML Java 测试技术
《深入理解Spring》:IoC容器核心原理与实战
Spring IoC通过控制反转与依赖注入实现对象间的解耦,由容器统一管理Bean的生命周期与依赖关系。支持XML、注解和Java配置三种方式,结合作用域、条件化配置与循环依赖处理等机制,提升应用的可维护性与可测试性,是现代Java开发的核心基石。
|
监控 Java 应用服务中间件
微服务——SpringBoot使用归纳——为什么学习Spring Boot
本文主要探讨为什么学习Spring Boot。从Spring官方定位来看,Spring Boot旨在快速启动和运行项目,简化配置与编码。其优点包括:1) 良好的基因,继承了Spring框架的优点;2) 简化编码,通过starter依赖减少手动配置;3) 简化配置,采用Java Config方式替代繁琐的XML配置;4) 简化部署,内嵌Tomcat支持一键式启动;5) 简化监控,提供运行期性能参数获取功能。此外,从未来发展趋势看,微服务架构逐渐成为主流,而Spring Boot作为官方推荐技术,与Spring Cloud配合使用,将成为未来发展的重要方向。
565 0
微服务——SpringBoot使用归纳——为什么学习Spring Boot
|
12月前
|
XML 人工智能 Java
Spring IOC 到底是什么?
IOC(控制反转)是一种设计思想,主要用于解耦代码,简化依赖管理。其核心是将对象的创建和管理交给容器处理,而非由程序直接硬编码实现。通过IOC,开发者无需手动new对象,而是由框架负责实例化、装配和管理依赖对象。常见应用如Spring框架中的BeanFactory和ApplicationContext,它们实现了依赖注入和动态管理功能,提升了代码的灵活性与可维护性。
286 1
|
12月前
|
安全 Java 数据库
Spring Boot 框架深入学习示例教程详解
本教程深入讲解Spring Boot框架,先介绍其基础概念与优势,如自动配置、独立运行等。通过搭建项目、配置数据库等步骤展示技术方案,并结合RESTful API开发实例帮助学习。内容涵盖环境搭建、核心组件应用(Spring MVC、Spring Data JPA、Spring Security)及示例项目——在线书店系统,助你掌握Spring Boot开发全流程。代码资源可从[链接](https://pan.quark.cn/s/14fcf913bae6)获取。
1972 3
|
XML Java 数据格式
Spring IoC容器的设计与实现
Spring 是一个功能强大且模块化的 Java 开发框架,其核心架构围绕 IoC 容器、AOP、数据访问与集成、Web 层支持等展开。其中,`BeanFactory` 和 `ApplicationContext` 是 Spring 容器的核心组件,分别定位为基础容器和高级容器,前者提供轻量级的 Bean 管理,后者扩展了事件发布、国际化等功能。
363 18
|
Java Spring
Spring框架的学习与应用
总的来说,Spring框架是Java开发中的一把强大的工具。通过理解其核心概念,通过实践来学习和掌握,你可以充分利用Spring框架的强大功能,提高你的开发效率和代码质量。
316 20
|
XML Java 数据格式
京东一面:spring ioc容器本质是什么? ioc容器启动的步骤有哪些?
京东一面:spring ioc容器本质是什么? ioc容器启动的步骤有哪些?
|
Java 容器 Spring
什么是Spring IOC 和DI ?
IOC : 控制翻转 , 它把传统上由程序代码直接操控的对象的调用权交给容 器,通过容器来实现对象组件的装配和管理。所谓的“控制反转”概念就是对组件对象控制权的转 移,从程序代码本身转移到了外部容器。 DI : 依赖注入,在我们创建对象的过程中,把对象依赖的属性注入到我们的类中。

热门文章

最新文章