Spring学习二、HelloSpring与IOC创建对象方式

三、HelloSpring

配置文件

<?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
        https://www.springframework.org/schema/beans/spring-beans.xsd">
    <!-- 使用spring创建对象,在spring中这些都称之为bean-->
    <!--
        bean 相当于 对象                 new 对象
        id 相当于 变量名
        class 相当于 全限定
        property 相当于 给对象中的属性赋初始值
        value
    -->
    <bean id="hello" class="cn.imut.pojo.Hello">
        <property name="str" value="Spring"/>
    </bean>
</beans>c

测试

public class MyTest {
    public static void main(String[] args) {
        //用xml加载必须使用(获取Spring的上下文对象)
        ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");

        //我们的对象都在Spring中管理了,若要使用,直接取出即可
        Hello hello = (Hello) context.getBean("hello");
        System.out.println(hello.toString());
    }
}
  • Hello是由Spring创建的
  • hello对象的属性是由Spring容器设置的

这个过程称之为控制反转

控制:谁来控制对象的创建,传统应用程序的对象是由程序本身控制创建,使用Spring后,对象由Spring来创建!

反转:程序本身不创建对象,而变成被动的接收对象。

依赖注入:就是利用Set方法来进行注入的。

IOC是一种编程思想,由主动的编程变成被动的接收

四、IOC创建对象的方式

  1. 使用无参构造创建对象,默认!
  2. 若要使用有参构造
    • 下标赋值
    <!-- 下标赋值-->
    <bean id="user" class="cn.imut.pojo.User">
        <constructor-arg index="0" value="张磊"/>
    </bean>
    • 类型创建
    <!-- 不建议使用-->
    <bean id="user" class="cn.imut.pojo.User">
        <constructor-arg type="java.lang.String" value="张磊"/>
    </bean>
    • 直接通过参数名设置
    <bean id="user" class="cn.imut.pojo.User">
        <constructor-arg name="name" value="张磊"/>
    </bean>

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

原文地址:https://www.cnblogs.com/yfyyy/p/12433390.html

时间: 2024-10-10 18:07:14

Spring学习二、HelloSpring与IOC创建对象方式的相关文章

Android Afinal框架学习(二) FinalActivity 一个IOC框架

框架地址:https://github.com/yangfuhai/afinal 对应的源码: net.tsz.afinal.annotation.view.* FinalActivity FinalActivity是一个基础类,结合注解实现了,依赖注入(view的资源id,常用的监听器), 利用set方式注入 完全注解方式就可以进行UI绑定和事件绑定,无需findViewById和set event Listener 这个过程:initInjectedView>findViewById.set

spring学习(二) ———— AOP之AspectJ框架的使用

前面讲解了spring的特性之一,IOC(控制反转),因为有了IOC,所以我们都不需要自己new对象了,想要什么,spring就给什么.而今天要学习spring的第二个重点,AOP.一篇讲解不完,所以这篇文章主要介绍一下什么是AOP,如何去理解AOP.理解完之后,在spring中如何使用AspectJ AOP框架的.看得懂,写的出spring配置的那么就学的差不多了.加油.建议都自己手动实现一遍,这样才能更好的理解. --WH 一.什么是AOP? AOP:面向切面编程,采用横向抽取机制,取代了传

Spring学习(四)IOC详解

本文借鉴:Spring学习2(特此感谢!) 一.简介 概念:控制反转是一种通过描述(在 Java 中可以是 XML 或者注解)并通过第三方(Spring)去产生或获取特定对象的方式.(被动创建) 优势: ① 降低对象之间的耦合 ② 我们不需要理解一个类的具体实现,只需要知道它有什么用就好了(直接向 IoC 容器拿) 小结:主动创建的模式中,责任归于开发者,而在被动的模式下,责任归于 IoC 容器,基于这样的被动形式,我们就说对象被控制反转了.(也可以说是反转了控制) 二.IOC容器 Spring

spring学习二:根据spring原理自己写个spring

请先看我另一篇文章:"Spring学习一:IOC(控制反转)和AOP(面向切面)的xml配置和注解方式"中大概知道他的简单用法 那我自己想写一个简单sping,注解的方式以后再写 方式:1.解析xml配置 2.使用java的反射机制生产动态代理对象 3.扫描类上的注解,再用反射(没写) 代码如下(简单实现,重原理轻代码,不喜勿喷) xml配置我就直接用我上一篇spring-test的配置了,代码也用上一篇的,但解析的时候是用自己写的,没有用调用任何spring API代码 <?x

Spring学习(二)

Spring配置 查看配置文件中的标签: 可以看到常用的就只有四个标签! 1.别名(alias) 如果添加了别名,我们也可以使用别名获取到这个对象 <alias name="user" alias="userNew"/> 2.Bean的配置 id:bean的唯一标识符,也就是相当于我们学的对象名 class:bean 对象对应的全限定名:包名 + 类型 name:也是别名,而且可以提示去多个别名 <bean id="user"

Spring学习(三)ioc工厂bean深入理解

一.ioc工厂配置的bean分类: 划分依据: getBean("xx") 调用某个bean对象返回的对象实例类型是否是class属性指向的类型 1.普通bean getBean("xxx") == class 属性 2.工厂bean getBean("xxx") != class属性 (class属性中指向的是一个工厂类,调用这个bean对象,想要的并不是class属性指向的工厂 ,而是该工厂负责创建的实例对象.) 二.工厂bean的必要性:

Spring学习(2)---IOC

1.接口及面向接口编程 2.什么是IOC 3.Spring的Bean配置 4.Bean的初始化 5.Spring的常用注入方式 (一)接口 用于沟通的中介物的抽象化 实体把自己提供给我外接的一种抽象化说明,用以由内部操作分离出外部沟通方式,使其被修改内部而不应现外接其他实体与其交互的方式 对应java接口即声明,生命了哪些方法是对外公开提供的 在Java8中,接口可以拥有方法体(在某种意义上,接口与抽象类具有相同的功能) (二)面向接口编程 结构设计中,分清层次及调用关系,每层只向外(上层)提供

Spring学习(4)IOC容器配置bean:定义与实例化

一.  IOC容器配置 1. 一些概念 (1)IOC容器: 定义:具有管理对象和管理对象之间的依赖关系的容器. 作用:应用程序无需自己创建对象,对象由IOC容器创建并组装.BeanFactory是IOC容器的核心. 流程:IOC容器根据配置文件,读取配置元数据,通过元数据库对程序中的各个对象进行实例化和装配.Spring与配置文件完全解耦,可以使用其他任何方式进行配置元数据,比如注解.基于java文件.基于属性文件的配置都可以. (2)Bean:IOC容器管理的应用程序的对象我们称它为bean.

Spring学习(一) IoC 和 DI

  文章部分图片来自参考资料 概述 本文涉及到三个名词 IoC (Invention Of Control ) 控制反转 DI(Dependency Injection) 依赖注入 IoC Container 控制反转容器 他们的关系如下图所示. 上图我们可以得出 : 控制反转是目的,而依赖注入是实现控制反转的手段. 理解这一点很重要.要始终记得控制反转这个思路是我们要追求的目的. 资料阅读 用通俗的语言来解释控制反转可以参考下面几篇文章 : Spring IoC有什么好处呢? - Sevenv