ioc

spring框架IOC设值注入

可紊 提交于 2020-03-07 13:16:14
spring以动态的形式来管理对象,注入分为两种: 1. 设置注入:直观 自然 2.构造注入:可以在构造器中决定依赖顺序 以下就是示例: 1.User实体类 package com.domain; import java.io.Serializable; /** * * @author Mr * 实体类 */ public class User implements Serializable { private Integer id; private String uname; private String upwd; private String email; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUname() { return uname; } public void setUname(String uname) { this.uname = uname; } public String getUpwd() { return upwd; } public void setUpwd(String upwd) { this.upwd = upwd; } public String getEmail() {

IOC和AOP的简单理解

最后都变了- 提交于 2020-03-07 10:35:35
IOC控制反转 1 spring是个容器,就像是一个娃娃机。项目开始,我们将bean注入到这个容器中,通过注册,我们就可以使用已经注册的bean,在使用对象时,我们就不用去new xxx(); 而是直接xx.getbean(“xxx”); 在SSM整合后,使用注解开发则更为简单。 DI(依赖注入) 在笔者眼中,依赖注入和控制反转是一个相辅相成的概念,对于依赖注入简单来说,就是将类的属性、方法、依赖的对象,注入到已经在spring容器中注册的bean。 AOP(面向切面) 对于面向切面,笔者有以下简单理解,便于小白入门:先从一个简单的小故事引入。 所有人每天都要吃午饭,对于吃午饭这个事,我们可能想要一个更完美的流程,吃午饭前我们要洗手,吃午饭时候我们还想看电视,吃午饭后我们还想睡觉,吃午饭的时候,突然有人想要我们去玩游戏,我们应该还有有对待这个场景的解决方案。这听起来有点像装饰者模式。 上面的场景假设我们当前已经存在了吃午饭这个类,不能对其修改,那么我们就无法进行添加洗手、打游戏、睡觉、看电视等操作。这就很烦 但是对于Spring框架来说,研究人员为我们提供了AOP的思想和实现,使我们这个想法得以实现,并且完美整合到当下javaee项目开发流程中。 简单来说:代理就是将上面的吃午饭业务进行升华,可以在代理类中实现,吃午饭befor去洗手,after睡觉,中途去完,吃饭时看电视等操作。

Spring入门基础

一个人想着一个人 提交于 2020-03-05 22:36:56
1、完成例题1.3spring入门程序。修改根包为edu.javaee.spring 1.创建java项目命名为heiya 2.在项目下创建一个package命名为edu.javaee.spring 3.创建接口UserDao.java,编写一个抽象类方法say() 4.创建一个实现类UserDaoimpl来实现接口功能 5.配置applicationContext.xml文件 6.创建一个测试类Test01.java用来测试 7.测试结果 2、spring的优点是什么? 非侵入式设计 方便解耦、简化开发 支持AOP 支持声明式事务处理 方便程序检查 方便集成各种优秀框架 降低Java EE API的使用难度 3、spring的Ioc和DI的概念理解? 1、IoC(控制反转)   控制反转是说创建对象的控制权进行转移,以前创建对象的主动权和创建时机是由自己把控的,而现在这种权力转移到第三方,比如转移交给了IoC容器,它就是一个专门用来创建对象的工厂,你要什么对象,它就给你什么对象,有了 IoC容器,依赖关系就变了,原先的依赖关系就没了,它们都依赖IoC容器了,通过IoC容器来建立它们之间的关系。 2、DI(依赖注入)   IoC的一个重点是在系统运行中,动态的向某个对象提供它所需要的其他对象。这一点是通过DI(依赖注入)来实现的 来源: CSDN 作者: 黑鸦1205 链接:

依赖注入实例

我怕爱的太早我们不能终老 提交于 2020-03-05 20:40:11
目录 1 IGame游戏公司的故事 1.1 讨论会 1.2 实习生小李的实现方法 1.3 架构师的建议 1.4 小李的小结 2 探究依赖注入 2.1 故事的启迪 2.2 正式定义依赖注入 3 依赖注入那些事儿 3.1 依赖注入的类别 3.1.1 Setter注入 3.1.2 Construtor注入 3.1.3 依赖获取 3.2 反射与依赖注入 3.3 多态的活性与依赖注入 3.3.1 多态性的活性 3.3.2 不同活性多态性依赖注入的选择 4 IoC Container 4.1 IoC Container出现的必然性 4.2 IoC Container的分类 4.2.1 重量级IoC Container 4.2.2 轻量级IoC Container 4.3 .NET平台上典型IoC Container推介 4.3.1 Spring.NET 4.3.2 Unity 参考文献 1 IGame游戏公司的故事 1.1 讨论会 话说有一个叫IGame的游戏公司,正在开发一款ARPG游戏(动作&角色扮演类游戏,如魔兽世界、梦幻西游这一类的游戏)。一般这类游戏都有一个基本的功能,就是打怪(玩家攻击怪物,借此获得经验、虚拟货币和虚拟装备),并且根据玩家角色所装备的武器不同,攻击效果也不同。这天,IGame公司的开发小组正在开会对打怪功能中的某一个功能点如何实现进行讨论

IOC

筅森魡賤 提交于 2020-03-05 18:28:00
Spring IoC 基础 BeanFactory 与 ApplicationContext 区别 BeanFactory 是 Spring 框架中 IoC 容器的顶层接口 , 它只是用来定义一些基础功能 , 定义一些基础规范 ,而ApplicationContext是它的一个子接口,所以 ApplicationContext 是具备 BeanFactory 提供的全部功能的。 通常,我们称 BeanFactory 为 SpringIOC 的基础容器, ApplicationContext 是容器的高级接口,比BeanFactory要拥有更多的功能,比如说国际化支持和资源访问( xml , java 配置类)等等。 启动 IoC 容器的方式 Java 环境下启动 IoC 容器 ClassPathXmlApplicationContext :从类的根路径下加载配置文件(推荐使用) FileSystemXmlApplicationContext :从磁盘路径上加载配置文件 AnnotationConi gApplicationContext :纯注解模式下启动 Spring 容器 @org.junit.Test public void testIoc(){ // 通过读取classpath下的xml文件来启动容器(xml模式SE应用下推荐)

spring源码解析之IOC容器(三)——依赖注入

帅比萌擦擦* 提交于 2020-03-05 17:46:20
  上一篇主要是跟踪了IOC容器对bean标签进行解析之后存入Map中的过程,这些bean只是以BeanDefinition为载体单纯的存储起来了,并没有转换成一个个的对象,今天继续进行跟踪,看一看IOC容器是怎样实例化对象的。   我们都使用过以下代码: 1 FileSystemXmlApplicationContext context=new FileSystemXmlApplicationContext("bean.xml"); 2 User user=context.getBean("user",User.class);   这样我们就能获取到user对象了,所以,不难想象,这个getBean方法就是实例化对象的入口。接下来我们就以这个方法为切入点,来探究IOC容器中bean的实例化过程。getBean方法是在FileSystemXmlApplicationContext的基类AbstractApplicationContext中定义的,代码如下: 1 public <T> T getBean(String name, Class<T> requiredType) throws BeansException { 2 assertBeanFactoryActive(); 3 return getBeanFactory().getBean(name, requiredType)

Spring3开发(一)

ぃ、小莉子 提交于 2020-03-05 12:05:18
1 Ioc是什么? Ioc:Inversion of Control,控制反转,控制权从应用程序转移到框架(如Ioc容器),是框架的共有特性。 1.1 为什么需要IoC容器?IoC容器是如何演变的? (1)、应用程序主动控制对象的实例化及依赖装配 a. A a = new AImpl(); B b = new BImpl(); a.setB(b); 本质:创建对象,主动实例化,直接获取依赖,主动装配 缺点:更换实现需要重新编译源代码    很难更换实现、难于测试 耦合实例生产者和实例消费者 b. A a = AFactory.createA(); B b = BFactory.createB(); a.setB(b); 本质:创建对象,被动实例化,间接获取依赖,主动装配 (简单工厂) 缺点:更换实现需要重新编译源代码 很难更换实现、难于测试 c. A a = Factory.create(“a”); B b = Factory.create(“b”); a.setB(b); <!—配置.properties--> a=AImpl b=BImpl 本质:创建对象,被动实例化,间接获取依赖, 主动装配 (工厂+反射+properties配置文件、 Service Locator、注册表) 缺点:冗余的依赖装配逻辑 (2)、可配置通用工厂 : 工厂主动控制 ,应用程序被动接受

Spring面试笔记

时光总嘲笑我的痴心妄想 提交于 2020-03-05 12:04:54
1. Spring工作机制及为什么要用? Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。Spring既是一个AOP框架,也是一IOC容器。 SpringFramework的组成:Spring AOP,Spring DAO,Spring ORM,Spring Web,Spring Context, Spring Web MVC。 Spring的核心就是IOC和AOP,所以Spring的工作机制简单的理解也就是IOC和AOP的工作机制。 借助于Spring AOP,Spring IoC能够很方便的使用到非常健壮、灵活的企业级服务,通过使用IoC能够降低组件之间的耦合度,最终,能够提高类的重用性,利于测试,而且更利于整个产品或系统集成和配置。 2. 说说AOP和IOC的概念以及在spring中是如何应用的? AOP,Aspect Oriented Program,面向(方面)切面的编程; IOC,Invert Of Control,控制反转。 简单说一下,IOC就是其实就是依赖注入,即用接口编程,在程序中不出现new关键字,而是用接口来命名引用,然后通过某种方式把接口的某个实现类的实例注入到引用里,从而实现接口与具体实现类的松耦合。 由容器控制程序之间的关系(通过XML配置),而非传统实现中的由程序代码直接操控,(在一个Class对象中引用另一个Class对象时

Spring的IoC与DI

南笙酒味 提交于 2020-03-04 22:19:02
前言 通过对前几篇的文章总结了下对Servlet、Filter、ServletContextListener的了解。 现在学习基于Servlet技术开发SpringMVC框架。在学习SpringMVC之前要先了解Spring框架。 想要了解Spring,就要从 Spring是什么 、 Spring能做什么 、 用Spring有什么好处 、 Spring该怎么使用 这个几个方面入手。 个人参考的是 开涛大神 的 跟我学Spring 系列文章。 Spring是什么 Spring是JavaEE的开源框架,其通过实现IoC/DI进行容器管理,简化企业级应用程序开发,管理了各个模块的依赖。 IoC (Inversion of Control)控制反转。这里要明白谁控制谁,什么是反转。 public class User{ private UserInfo userInfo; public getUserName(){ return userInfo.name; } } 在上面的代码中,有个getUserName方法,该方法需要用户信息中的名称。如果没有UserInfo实例程序会产生错误。 此刻 User 依赖 UserInfo,UserInfo 控制了 User 。想要正常使用User必须手动构建UserInfo再赋值给User。 基于IoC的理念,User

javaee01

一笑奈何 提交于 2020-03-04 22:15:56
1、完成例题1.3spring入门程序。修改根包为edu.javaee.spring UserDao.java 代码如下: package edu.javaee.ioc; public interface UserDao { public void say(); } UserDaoImpl.java 代码如下: TestIoc代码如下: 最终效果: 2、spring的优点是什么? (1)非侵入式设计 (2)方便解耦、简化开发 (3)支持AOP (4)支持声明式事务处理 (5)方便程序测试 (6)方便集成各种优秀框架 (7)降低Java EE API的使用难度 3、spring的Ioc和DI的概念理解? IoC—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。 DI—Dependency Injection,即“依赖注入”:组件之间依赖关系由容器在运行期决定,形象的说,即由容器动态的将某个依赖关系注入到组件之中。 4、为什么不复制代码?复制代码无法编辑博客! 来源: CSDN 作者: 茳芏_ 链接: https://blog.csdn.net/qq_44839030/article/details/104653803