码迷,mamicode.com
首页 > 编程语言 > 详细

JavaEE基础01-spring

时间:2020-05-10 13:07:04      阅读:71      评论:0      收藏:0      [点我收藏+]

标签:fresh   依赖   ram   oid   属性注入   对象   构造方法   div   配置   

技术图片

 

 技术图片

 

可以到spring官网去下载最新的spring扎包。

 技术图片

现在作一个简单测试类,我使用的是idea,创建module时,勾选spring,写一个applicationContext.xml文件。

技术图片

 

.xml文件里加入

    <bean id="helloWorld" class="com.guigu.spring.beans.HelloWorld">
    <property name="name" value="spring"></property>
    </bean>

技术图片

把.xml文件和spring建立联系。

 技术图片

技术图片
package com.guigu.spring.beans;

/**
 * Created by Zhuxiang on 2020/5/9.
 */
public class HelloWorld {
    public String name;

    public HelloWorld() {
        System.out.println("HelloWorld is construct!");
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "HelloWorld{" +
                "name=‘" + name + ‘\‘‘ +
                ‘}‘;
    }

}
HelloWorld
技术图片
package com.guigu.spring.beans;

import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * Created by Zhuxiang on 2020/5/9.
 */
public class Main {
    public static void main(String[] args) {
//        HelloWorld helloWorld = new HelloWorld();
//        helloWorld.setName("123");
        ClassPathXmlApplicationContext c = new ClassPathXmlApplicationContext("applicationContext.xml");
        HelloWorld helloWorld = (HelloWorld) c.getBean("helloWorld");
        System.out.println(helloWorld);
    }
}
Main

运行之后成功。

技术图片

 

 技术图片

IOC 前生 --- 分离接口与实现

技术图片

IOC 前生 --- 采用工厂设计模式

技术图片

IOC --- 采用反转控制技术图片

 

 技术图片

 

 上面的例子就是用的ClassPathXmlApplicationContext类。

技术图片

 

 

  ApplicationContext 的主要实现类

      ClassPathXmlApplicationContext:从 类路径下加载配置文件

      FileSystemXmlApplicationContext: 从文件系统中加载配置文件

  ConfigurableApplicationContext 扩展于 ApplicationContext,新增加两个主要方法:refresh() 和 close(), 让 ApplicationContext 具有启动、刷新和关闭上下文的能力

  ApplicationContext 在初始化上下文时就实例化所有单例的 Bean。 WebApplicationContext 是专门为 WEB 应用而准备的,它允许从相对于 WEB 根目录的路径中完成初始化工作

依赖注入的方式

  Spring 支持 3 种依赖注入的方式

    属性注入

    构造器注入

    工厂方法注入(很少使用,不推荐)

属性注入

  属性注入即通过 setter 方法注入Bean 的属性值或依赖的对象(上面.xml中的<property name="name" value="spring">"name"就是指bean里的setter方法的名字)

  属性注入使用 <property> 元素, 使用 name 属性指定 Bean 的属性名称,value 属性或 <value> 子节点指定属性值

  属性注入是实际应用中最常用的注入方式

构造器注入

  通过构造方法注入Bean 的属性值或依赖的对象,它保证了 Bean 实例在实例化后就可以使用。

  构造器注入在 <constructor-arg> 元素里声明属性, <constructor-arg> 中没有 name 属性

  按索引匹配入参:技术图片

 

 

  按类型匹配入参:技术图片

 

 技术图片

注入属性值的细节

字面值:可用字符串表示的值,可以通过 <value> 元素标签或 value 属性进行注入。例子:<property name="name" value="spring">中的"spring"

基本数据类型及其封装类、String 等类型都可以采取字面值注入的方式。例子:<constructor-arg value="奥迪" type="java.lang.String"/>

若字面值中包含特殊字符,可以使用 <![CDATA[]]> 把字面值包裹起来。例子:把这样一个值显示出来<spring^^>,<property name="name" ><value><![CDATA[<spring^^>]]></value></property>

 

JavaEE基础01-spring

标签:fresh   依赖   ram   oid   属性注入   对象   构造方法   div   配置   

原文地址:https://www.cnblogs.com/zhuxiang1029/p/12862603.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!