spring学习笔记之---IOC和DI
IOC和DI
(一)IOC
(1) 概念
IOC (Inverse of Control) 反转控制,就是将原本在程序中手动创建对象的控制权,交给spring框架管理。简单的说,就是创建对象控制权被反转到了spring框架
(2)实例
1.UserService.java
package service; public interface UserService {
public void getAa();
}
2.UserServiceImpl.java
package service; public class UserServiceImpl implements UserService{ @Override public void getAa() { System.out.println("aaaaaaaaaaa"); } }
3.applicationContext.xml
<?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"> <!--UserService将创建权交给spring--> <bean id="userService" class="service.UserServiceImpl"></bean> </beans>
4.UserTest.java
package Test; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import service.UserService; import service.UserServiceImpl; public class UserTest { @Test public void one(){ //创建spring工厂 ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml"); //通过工厂获得类 UserService userService=(UserService)applicationContext.getBean("userService"); //通过类调用方法 userService.getAa(); }
}
(二)DI
(1)概念
DI(Dependency Injection)依赖注入,就是在spring创建这个对象的过程中,将这个对象所依赖的属性注入进去
(2)实例
1.UserService.java
package service; public interface UserService { public void getAa(); }
2.UserServiceImpl.java
package service; public class UserServiceImpl implements UserService{ //添加属性 private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public void getAa() { System.out.println("aaaaaaaaaaa"+name); } }
3.applicationContext.xml
<?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"> <!--UserService将创建权交给spring--> <bean id="userService" class="service.UserServiceImpl"> <!--设置属性--> <property name="name" value="张三"/> </bean> </beans>
4.UserTest.java
package Test; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import service.UserService; import service.UserServiceImpl; public class UserTest { @Test public void one(){ //创建spring工厂 ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml"); //通过工厂获得类 UserService userService=(UserService)applicationContext.getBean("userService"); //通过类调用方法 userService.getAa(); } }
spring学习笔记之---IOC和DI的更多相关文章
- Spring学习笔记1——IOC: 尽量使用注解以及java代码(转)
在实战中学习Spring,本系列的最终目的是完成一个实现用户注册登录功能的项目. 预想的基本流程如下: 1.用户网站注册,填写用户名.密码.email.手机号信息,后台存入数据库后返回ok.(学习IO ...
- Spring学习笔记1——IOC: 尽量使用注解以及java代码
在实战中学习Spring,本系列的最终目的是完成一个实现用户注册登录功能的项目. 预想的基本流程如下: 1.用户网站注册,填写用户名.密码.email.手机号信息,后台存入数据库后返回ok.(学习IO ...
- Spring学习笔记2——表单数据验证、文件上传
在上一章节Spring学习笔记1——IOC: 尽量使用注解以及java代码中,已经搭建了项目的整体框架,介绍了IOC以及mybatis.第二节主要介绍SpringMVC中的表单数据验证以及文件上传. ...
- spring学习笔记(一) Spring概述
博主Spring学习笔记整理大部分内容来自Spring实战(第四版)这本书. 强烈建议新手购入或者需要电子书的留言. 在学习Spring之前,我们要了解这么几个问题:什么是Spring?Spring ...
- Java架构师之路 Spring学习笔记(一) Spring介绍
前言 这是一篇原创的Spring学习笔记.主要记录我学习Spring4.0的过程.本人有四年的Java Web开发经验,最近在面试中遇到面试官总会问一些简单但我不会的Java问题,让我觉得有必要重新审 ...
- Spring学习笔记之依赖的注解(2)
Spring学习笔记之依赖的注解(2) 1.0 注解,不能单独存在,是Java中的一种类型 1.1 写注解 1.2 注解反射 2.0 spring的注解 spring的 @Controller@Com ...
- Spring学习笔记(一)
Spring学习笔记(一) 这是一个沉淀的过程,大概第一次接触Spring是在去年的这个时候,当初在实训,初次接触Java web,直接学习SSM框架(当是Servlet都没有学),于是,养成了一个很 ...
- 不错的Spring学习笔记(转)
Spring学习笔记(1)----简单的实例 --------------------------------- 首先需要准备Spring包,可从官方网站上下载. 下载解压后,必须的两个包是s ...
- Spring入门一:IOC、DI、AOP基本思想
Spring框架是一个集众多涉及模式于一身的开源的.轻量级的项目管理框架,致力于javaee轻量级解决方案.相对于原来学过的框架而言,spring框架和之前学习的struts2.mybatis框架有了 ...
随机推荐
- 应用安全 - CMS - ThinkCMF - 漏洞汇总
ThinkCMF X1.6.0-X2.2.3任意内容包含漏洞 Date: 2019.10 类型: 任意文件写入导致远程代码执行 影响范围: ThinkCMF X1.6.0 ThinkCMF X2.1. ...
- Canvas入门08-绘制仪表盘
需求 实现下图所示的仪表盘的绘制. 分析 我们先来将仪表盘进行图形拆分,并定义尺寸. 我们绘制的逻辑: 绘制中心圆 绘制环外圈圆 绘制环内圈圆 绘制刻度内圈圆 绘制刻度线 绘制刻度文字 绘制指针 定义 ...
- python 并发编程 多进程 互斥锁 目录
python 并发编程 多进程 互斥锁 模拟抢票 互斥锁与join区别
- python控制流-名词解释
一.控制流的元素 控制流语句的开始部分通常是“条件”,接下来是一个代码块,称为“子句”. 二.控制流的条件 条件为了判断下一步如何进行,从而求布尔值的表达式.几乎所有的控制流语句都使用条件. 三.代码 ...
- Java IO NIO详细讲解
1.IO Java IO概述 2.NIO Java NIO浅析
- [19/06/03-星期一] HTML基础_C/S与B/S的区别&标题标签(h1-h6)、段落标签(p)
一.C/S与B/S的区别 C/S(Client/Server):客户端/服务器 1)一般使用的软件都是C/S架构,比如QQ.360.office365: 2)C表示客户端,用户通过客户端来使用软件:S ...
- es6中let实例应用之一
有如下情景 html部分: <button class="btn">按钮1</button> <button class="btn" ...
- Spring的底层实现机制
Spring的底层实现机制是通过Demo4j+java反射机制实现的. 使用demo4j来解析xml,使用反射机制实例化bean.
- Markov Chain Monte Carlo Simulation using C# and MathNet
Math.Net Numerics has capability to conduct Markov Chair Monte Carlo simulations, yet the document i ...
- 当页面完全加载完成后执行一个JS函数
方法1.如下程序,当页面完全加载后执行openTheIndexPage()方法 <html> <head> <meta http-equiv="Conte ...