1. DI

Dependency Injection,依赖注入。当对象里有属性或对象的时候,就需要为这些属性或对象赋值

2. 流程

这里介绍两种方式

  • set方法
  • 注解方式

2.1 set方法

Bean准备

package bean;

import bean.Question;

public class User {

	private String name;
private String email;
private String password;
private Question question; /**
* 省略了getters/setters
* @author Howl
*/ //set方法
public void setQuestion(Question question) {
this.question = question;
} //构造函数
public User(String name, String email, String password) {
super();
this.name = name;
this.email = email;
this.password = password;
}
}
package bean;

import java.sql.Timestamp;
import java.util.Date; public class Question { private int id;
private Timestamp time;
private String content; /**
* 省略了getters/setters
* @author Howl
*/ //构造函数
public Question(int id, Timestamp time, String content) {
super();
this.id = id;
this.time = time;
this.content = content;
}
}

applictionContext.xml配置

<!--创建User对象-->
<bean id="User" class="User">
<!-- 依赖注入,setting自动注入 -->
<property name="Question" ref="Question"/>
</bean> <!--创建Question对象-->
<bean id="Question" class="Question"></bean>

获取对象

ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");

//直接获取
User user = ac.getBean("User");

2.2 注解方式

注解准备

package bean;

import bean.Question;

@Component
public class User { private String name;
private String email;
private String password;
private Question question; /**
* 省略了getters/setters
* @author Howl
*/ //set方法
@Autowired
public void setQuestion(Question question) {
this.question = question;
} //构造函数
public User(String name, String email, String password) {
super();
this.name = name;
this.email = email;
this.password = password;
}
}

获取对象

ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");

//直接获取
User user = ac.getBean("User");

Spring入门(二)——DI的更多相关文章

  1. Spring入门(二):自动化装配bean

    Spring从两个角度来实现自动化装配: 组件扫描(component scanning):Spring会自动发现应用上下文中需要创建的bean. 自动装配(autowiring):Spring会自动 ...

  2. Spring入门二:整合mybatis

    一.SM思路分析 1.引入核心依赖及相关依赖:  spring(略).mybatis.mysql.mybatis-spring(减少自己实现FactoryBean接口).druid <depen ...

  3. spring入门(二) 使用注解代替xml配置

    1.导包(略) 2.applicationContext.xml如下: <?xml version="1.0" encoding="UTF-8"?> ...

  4. Spring IoC、DI入门小程序

    Alt+/智能提示xml配置文件节点及属性:在接口上使用Ctrl+T可以提示其实现类 一.IoC控制反转(将创建对象的权利交给spring)入门小程序 1.引入jar包 2.工程基本结构 3.新建Us ...

  5. Spring入门(一)— IOC、DI

    一.Spring介绍 Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的.框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成 ...

  6. Spring入门详细教程(二)

    前言 本篇紧接着spring入门详细教程(一),建议阅读本篇前,先阅读第一篇.链接如下: Spring入门详细教程(一) https://www.cnblogs.com/jichi/p/1016553 ...

  7. Spring(二)--Spring入门案例

    Spring入门案例 1.需要的实体类 2.需要的接口和实现类 3.需要的service和实现类 /** * service层的作用 * 在不改变dao层代码的前提下,增加业务逻辑操作 */ publ ...

  8. Spring入门一:IOC、DI、AOP基本思想

    Spring框架是一个集众多涉及模式于一身的开源的.轻量级的项目管理框架,致力于javaee轻量级解决方案.相对于原来学过的框架而言,spring框架和之前学习的struts2.mybatis框架有了 ...

  9. Spring Boot入门(二):获取配置文件值

    本篇博客主要讲解下在Spring Boot中如何获取配置文件的值. 1. 使用yaml配置文件 Spring Boot默认生成的配置文件为application.properties,不过它也支持ya ...

  10. Spring IoC 和 DI 简介(二)

    Spring IoC 和 DI 简介 IoC:Inverse of Control(控制反转) 读作“反转控制”,更好理解,不是什么技术,而是一种设计思想,就是将原本在程序中手动创建对象的控制权,交由 ...

随机推荐

  1. 2019-10-11 ubuntu ssh远程免密登录配置及配置别名

    在客户端能正常远程访问服务端的前提下. 客户端: 1)配置免密 执行 ssh-keygen 即可生成 SSH 钥匙,回车三次. 执行 ssh-copy-id user@remote,可以让远程服务器记 ...

  2. redis HyperLogLog的使用

    一.概念1.redis在2.8.9版本添加了HyperLogLog结构.2.redis HyperLogLog是用来做基数统计的算法,HyperLogLog的优点是:在输入元素的数量或者体积非常非常大 ...

  3. 贴一个markdown语法,mweb自带的说明

    Markdown 语法和 MWeb 写作使用说明 Markdown 的设计哲学 Markdown 的目標是實現「易讀易寫」.不過最需要強調的便是它的可讀性.一份使用 Markdown 格式撰寫的文件應 ...

  4. HDFS-HA高可用集群搭建

    HA高可用集群搭建 1.总体集群规划 在hadoop102.hadoop103和hadoop104三个节点上部署Zookeeper. hadoop102 hadoop103 hadoop104 Nam ...

  5. 微信小程序自定义组件,提示组件

    微信小程序自定义组件,这里列举了一个常用的提示自定义组件,调用自定义组件中的方法和字段.仅供参考和学习. 编写组件: 在根目录下添加“components”目录,然后像添加Page页面一样添加自定义组 ...

  6. 1.ASP.NET Core介绍

    优点: 1.跨平台,高性能,开源,运行在.Net Core 或.Net Framework框架上(asp.net core 3.0及以后只支持.Net Core). 2.各平台上开发工具支持,能够开发 ...

  7. ActiveMQ Topic持久化订阅的几点收获

    非持久化模式下,Topic不会落地任何消息,消息入队即出队, 消费者如果想要保留离线后的消息需要告诉MQ实例,即注册过程, 代码上大概是这样的: connectionFactory = new Act ...

  8. Objective-C学习笔记 利用协议实现回调函数

    来源:http://mobile.51cto.com/iphone-278354.htm Objective-C学习笔记 利用协议实现回调函数是本文要介绍的内容,主要是实现一个显示文字为测试的视图,然 ...

  9. java web编程 servlet2

    一般在开发的过程中主要用一个doGet和doPost方法, http就是超文本传输协议,这是java API对servlet的描述 : 一般我们调用的方法细则如下 : service一分为二reque ...

  10. 2019.7月-前端面试总结(H5+C3+JS+ES6+Vue+浏览器)

    第二次面试 HTML HTML5中的新标签,举例一下 canvas绘画,本地离线存储localStorage,sessionStorage,video和audio元素,语义化元素,表单类型(date, ...