ioc

IoC容器实例化Bean三种方式

走远了吗. 提交于 2020-02-13 08:47:20
第一种: 默认无参数构造器 第二种: 静态工厂方法 第三种: 实例工厂方法 所有的配置如下 测试代码如下: 结论:spring默认是单例 面试题: BeanFactory和FactoryBean的区别 ? BeanFactory 指整个spring容器,可以管理各种对象,从工厂获取各种对象 FactoryBean 可以获取一种对象的工厂 FactoryBean 可以通过实现 getObject() 实现返回对象 ! 结论:使用FactoryBean返回的不是单例 来源: https://www.cnblogs.com/xumaodun/p/4927841.html

ioc的实现

爱⌒轻易说出口 提交于 2020-02-13 08:18:59
<?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"> <!-- bean就是java对象,由spring容器来创建和管理 --> <bean id="mysqlDao" class="com.yikuan.cn.Impl.UserDaoMysqlImplement"/> <bean id="oracleDao" class="com.yikuan.cn.Impl.UserDaoOracleImplement"/> <bean id="service" class="com.yikuan.cn.serviceImpl.UserServiceImplement"> <property name="userDao" ref="mysqlDao"></property> <!--

Spring Ioc-依赖注入的几种方式

前提是你 提交于 2020-02-13 08:18:14
一 setter方法注入 配置文件如下: <bean id="helloAction" class="org.yoo.action.SpringSetterHelloAction"> <!-- setter injection using the nested <ref/> element --> <property name="helloservice"><ref bean="helloService"/></property> <!--可以不设置类型 --> <property name="name" value="yoo"></property> </bean> action实现类中代码: private IHelloService helloservice; private String name ; public void sayHello(){ helloservice.sayHello(); System.out.println(this.name); } public void setHelloservice(IHelloService helloservice) { this.helloservice = helloservice; } public void setName(String name) { this.name = name; }

spring IOC 依赖注入的几种方式

↘锁芯ラ 提交于 2020-02-13 08:17:41
一 setter方法注入 配置文件如下: <bean id="helloAction" class="org.yoo.action.SpringSetterHelloAction"> <!-- setter injection using the nested <ref/> element --> <property name="helloservice"><ref bean="helloService"/></property> <!--可以不设置类型 --> <property name="name" value="yoo"></property> </bean> action实现类中代码: private IHelloService helloservice; private String name ; public void sayHello(){ helloservice.sayHello(); System.out.println(this.name); } public void setHelloservice(IHelloService helloservice) { this.helloservice = helloservice; } public void setName(String name) { this.name = name; }

spring入门和基于XML的 IOC 细节

时间秒杀一切 提交于 2020-02-12 16:22:31
基于 XML 的配置:   1.创建 maven 工程并导入坐标     <dependencies>      <dependency>        <groupId>org.springframework</groupId>        <artifactId>spring-context</artifactId>        <version>5.0.2.RELEASE</version>      </dependency>    </dependencies>   2.在类的根路径下(resources目录)创建一个任意名称的 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"> </beans>   3.让 spring 管理资源

1.Spring IOC入门

为君一笑 提交于 2020-02-12 14:20:47
Spring Boot 和Spring Cloud 关系简介 Spring Boot与Spring Cloud Spring Boot 是 Spring 的一套快速配置脚手架,可以基于Spring Boot 快速开发单个微服务; Spring Cloud是基于Spring Boot实现的; Spring Boot专注于快速、方便集成的单个微服务个体,Spring Cloud关注全局的服务治理框架; Spring Boot使用了约束优于配置的理念,很多集成方案已经帮你选择好了,能不配置就不配置 , Spring Cloud很大的一部分是基于Spring Boot来实现,Spring Boot可以离开Spring Cloud独立使用开发项目,但是Spring Cloud离不开Spring Boot,属于依赖的关系。 SpringBoot在SpringClound中起到了承上启下的作用,如果你要学习SpringCloud必须要学习SpringBoot。 IOC的本质: 程序员不在需要去主动的管理对象的创建了,需要更多关注业务的实现,耦合性大大减低,IOC的原型就是代理模式。   控制反转IoC(Inversion of Control),是一种设计思想,DI(依赖注入)是实现IoC的一种方法,也有人认为DI只是IoC的另一种说法。没有IoC的程序中 , 我们使用面向对象编程 ,

Spring-01 概念&反转控制IOC&依赖注入DI

|▌冷眼眸甩不掉的悲伤 提交于 2020-02-12 14:01:08
1.Spring概述 1.1 spring是什么? Spring是分层的java应用jull-stack轻量级框架,以**Ioc和AOP**为核心,提供了展现层 Spring MVC 和持久层 Spring JDBC 以及业务层事务管理等众多的企业级应用技术,还能整合众多第三方框架和类库。 1.2 spring优势 1. 方法解耦,简化开发 通过Ioc容器,可以将对象间的依赖关系交给Spring控制,避免硬编码造成的程序耦合。用户也不必为单例模式、属性文件解析等低层代码今昔编写。 2. AOP编程支持 通过AOP的工厂,方便进行面向切面编程,许多功能可以轻易通过AOP实现。 3. 声明式事务的支持 可以从事务管理代码中解脱出来,通过声明式事务的管理,提高开发效率和质量。 4. 方便程序的测试 可以用非容器依赖的编程方式进行几乎所有的测试工作,测试不再是昂贵的操作,而是随手可做的事情。 5. 方便集成各种优秀框架 Spring可以降低各种框架的使用难度,提供了对各种优秀框架(Struts、Hibernate、Hessian、Quartz 等)的直接支持 6. 降低java ee API使用难度 Spring对JavaEE API(如 JDBC、JavaMail、远程调用等)进行了薄薄的封装层,使这些API的使用难度大为降低 7. 源码高大上 值得学习 Spring的源代码设计精妙

SpringFramwork笔记

时间秒杀一切 提交于 2020-02-12 00:22:34
1、Spring 1.1 简介 Spring:春天---->给软件行业带来了春天! 2002,首次推出了Spring框架的雏形:interface21框架! Spring框架即以interface21框架为基础,经过重新设计,并不断丰富内涵,于2004年3月24日,发布了1.0正式版。 Rod Johnson ,Spring Framework创始人,著名作者。很难想象其学历,真的让好多人大吃一惊,他是悉尼大学的博士,然而他的专业不是计算机,而是音乐学。 spring理念:使现有的技术更加容易使用,本身是一个大杂烩,整合了现有的技术框架。 SSH:Struct2+Spring+Hibernate! SSM:SpringMVC+Spring+Mybatis! ​ 官网:https://spring.io/projects/spring-framework#overview 官方下载地址:https://repo.spring.io/release/org/springframework/spring/ Github:https://github.com/spring-projects/spring-framework Maven仓库:导入webmvc包会自动导入相关依赖;jdbc用于和Mybatis整合。 <!-- https://mvnrepository.com/artifact

Spring(03)Spring IOC 概述

南楼画角 提交于 2020-02-11 22:30:43
目录 Spring(03)Spring IOC 概述 1. Spring IoC 依赖查找 1.1 根据 Bean 名称查找 1.2 根据 Bean 类型查找 1.3 根据 Bean 名称 + 类型查找 1.4 根据 Java 注解查找 2. Spring IoC 依赖注入 2.1 根据 Bean 名称注入 2.2 根据 Bean 类型注入 2.3 注入容器內建 Bean 对象 2.4 注入非 Bean 对象 2.5 注入类型 2.6 注入模式 3. Spring IoC 依赖来源 4. Spring IoC 配置元信息 5. Spring IoC 容器 6. Spring 应用上下文 7. Spring IoC 容器生命周期 8. 面试题精选 Spring(03)Spring IOC 概述 Spring 核心编程思想目录: https://www.cnblogs.com/binarylei/p/12290153.html 1. Spring IoC 依赖查找 1.1 根据 Bean 名称查找 实时查找 User user = (User) beanFactory.getBean("user"); 延迟查找 bean 配置如下: <bean id="user1" class="com.binarylei.spring.ioc.bean.User" lazy-init="true"/

Spring(三)通过配置类配置IoC容器

允我心安 提交于 2020-02-11 01:42:28
Spring(三) 通过配置类配置Spring IoC容器 配置容器的注解 @Configuration 将当前类指定为一个配置类 @ComponentScan 通过注解指定Spring在创建容器时要扫描的包 属性: value:作用和xml配置文件中 < context: component-scan base-package = " your package " /> 的作用完全相同 @Bean 将当前方法的返回值作为bean对象存入Spring的IoC容器中 属性: name:用于指定bean对象的id,如果为空,则默认是当前方法名 使用注解配置方法时,如果方法有参数,spring框架会去容器中寻找有没有可用的bean对象 创建ApplicationContext对象 使用AnnotationConfigApplicationContext()的构造器,构造器参数可变,如下 public AnnotationConfigApplicationContext ( Class < ? > . . . componentClasses ) 参数可以填写若干个配置类,如果在参数中填写了配置类,那么上面的**@Configuration**则可有可无 导入其他配置类注解 @Import 属性:用于指定中填写要导入的配置类 使用Import后,有Import的类为父配置类