ioc

spingboot获得ioc容器

五迷三道 提交于 2020-01-11 05:42:18
本博客参考链接 https://www.cnblogs.com/nongzihong/p/11350308.html 我的工具类 package com . iot . donation . util ; import org . springframework . beans . BeansException ; import org . springframework . beans . factory . InitializingBean ; import org . springframework . context . ApplicationContext ; import org . springframework . context . ApplicationContextAware ; import org . springframework . stereotype . Component ; /** * @Author 张满 * @Description 获得ApplicationContext * @Date 2020/1/1 0:08 * @vsersion 1.0.0 **/ @Component public final class SpringUtils implements ApplicationContextAware ,

SpringBoot与IOC

北战南征 提交于 2020-01-11 03:04:40
一、什么是IOC 二、IOC的设计理念 1.ApplicationContext 三个常用的Context 1)FileSystemXMLApplicationContext:加载制定目录下的配置文件。 2)ClassPathXMLApplicationContext:加载类路径下的配置文件。 3)AnnotationConfigApplicationContext:基于注解的配置。 三、IOC源码解读 1.BeanDefinition类 public interface BeanDefinition extends AttributeAccessor, BeanMetadataElement { // 我们可以看到,默认只提供 sington 和 prototype 两种, // 很多读者可能知道还有 request, session, globalSession, application, websocket 这几种, // 不过,它们属于基于 web 的扩展。 String SCOPE_SINGLETON = ConfigurableBeanFactory.SCOPE_SINGLETON; String SCOPE_PROTOTYPE = ConfigurableBeanFactory.SCOPE_PROTOTYPE; // 比较不重要,直接跳过吧 int ROLE

Spring--2.Spring之IOC--了解IOC容器

纵饮孤独 提交于 2020-01-10 17:02:37
IOC(容器),用来集成别的框架 1.IOC(Inversion(反转)Of Control):控制反转   控制:资源的获取方式:       主动式:         BookServlet{           BookService bs=new BookService();           AirPlane ap=new AirPlane();//复杂对象的创建是比较庞大的工程         }       被动式:资源的获取不是我们自己创建,而是交给一个容器来创建和设置         BookServlet{           BookService bs;           public void test01(){             bs.checkout();           }         }   容器:管理所有组件(有功能的类);假设,BookServlet受容器管理,BookService也受容器管理;容器可以自动探查出哪些组件(类)需要用到另一些组件(类);容器帮我们创建BookService对象,并把BookService对象赋值过去;   容器:主动的new资源变为被动的接受资源。类似于婚介所,告诉婚介所要一个怎么样的对象,婚介所自动给你安排剩下的事情,不需要自己找。 DI:(Dependency Injection)依赖注入

Spring Day02 IOC 注解开发

空扰寡人 提交于 2020-01-10 14:04:59
1.Spring配置数据源 1.1 数据源(连接池)的作用 数据源(连接池)是提高程序性能如出现的 事先实例化数据源,初始化部分连接资源 使用连接资源时从数据源中获取 使用完毕后将连接资源归还给数据源 常见的数据源(连接池):DBCP、C3P0、BoneCP、Druid等 开发步骤 ①导入数据源的坐标和数据库驱动坐标 ②创建数据源对象 ③设置数据源的基本连接数据 ④使用数据源获取连接资源和归还连接资源 1.2 数据源的手动创建 ①导入c3p0和druid的坐标 <!-- C3P0连接池 --> < dependency > < groupId > c3p0 </ groupId > < artifactId > c3p0 </ artifactId > < version > 0.9.1.2 </ version > </ dependency > <!-- Druid连接池 --> < dependency > < groupId > com.alibaba </ groupId > < artifactId > druid </ artifactId > < version > 1.1.10 </ version > </ dependency > ①导入mysql数据库驱动坐标 <!-- mysql驱动 --> < dependency > < groupId > mysql

用Decorator实现依赖注入,像Java一样写后台

亡梦爱人 提交于 2020-01-10 11:39:19
最近闲来无事,突发奇想,也顺便练练手,于是就萌生了,能否用typescript的decorator写一个Nodejs SpringMVC,通过依赖注入,自动实现文件加载,实例化等。然后就有了这个项目。 该项目支持: 依赖注入Controller ,Service 注入GET/POST/PUT/DELETE/PATCH等rest方法 解析rest api的参数,例如RequestParam 上传文件支持Multer 支持在vscode里面直接debug typescript 的代码 想学习如何debug typescript代码的同学可以留意一下,真的很好用。 easy-node-ioc 用 Typescript 的装饰器实现依赖注入,就像我们使用 Spring MVC 框架一样,web 框架使用的是 Express 。 安装 npm i easy-node-ioc --save-dev 快速开始使用 git clone https://github.com/chenkang084/easy-node-ioc.git npm i NODE_ENV=development npx ts-node demo/App.ts 执行完以上命令,将在命令行输出 Example app has started,代码项目已正常经启动起来了,尝试访问 http://localhost:9001/api

Spring学习总结——Spring概念详解

蹲街弑〆低调 提交于 2020-01-10 07:37:37
Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架。你可能正在想“Spring不过是另外一个的framework”。当已经有许多开放源代码(和专有)J2EEframework时,我们为什么还需要Spring Framework?Spring是独特的,因为若干个原因:它定位的领域是许多其他流行的framework没有的。Spring致力于提供一种方法管理你的业务对象。Spring是全面的和模块化的。Spring有分层的体系结构,这意味着你能选择使用它孤立的任何部分,它的架构仍然是内在稳定的。因此从你的学习中,你可得到最大的价值。例如,你可能选择仅仅使用Spring来简单化JDBC的使用,或用来管理所有的业务对象。它的设计从底部帮助你编写易于测试的代码。Spring是用于测试驱动工程的理想的framework。Spring对你的工程来说,它不需要一个以上的framework。Spring是潜在地一站式解决方案,定位于与典型应用相关的大部分基础结构。它也涉及到其他framework没有考虑到的内容。 背景 Rod Johnson在2002年编著的《Expert one on one J2EE design and

spring IOC实验

时光毁灭记忆、已成空白 提交于 2020-01-09 07:59:17
软件151 朱实友 ( 1 ) 基于 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-2.5.xsd"> <!-- 配置 bean 的 ID , Class 类全名等属性,在标签中还会有 property 等子标签均与该 bean 相关(需要根据 bean 来设置) --> <bean id="..." class="..."> </bean> <bean id="..." class="..."> </bean> </beans> 例如: <bean id="greetingServiceImpl" class="cn.csdn.service.GreetingServiceImpl"> <property name="say"> <value> 你好! <

Spring IOC AOP学习笔记

℡╲_俬逩灬. 提交于 2020-01-08 03:50:15
IOC public class IServiceImpl implements IService {   public void IserviceImpl(){}   @Override public void getService() { System.out.println("服务"); } } 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"> <bean id="myService" class="com.pack.Service.IServiceImpl"/> </beans> ApplicationContext来加载类   通过ClassPathXmlApplicationContext来加载类

Spring Bean管理

陌路散爱 提交于 2020-01-08 00:19:19
IOC容器 工厂只负责创建对象,而Spring当然不仅仅是一个对象工厂;其核心是一个对象容器,由于具备控制反转的能力,所以也叫它IOC容器; 容器可以理解为存放对象的地方,当然不仅仅是存储,还有对象的管理,包括-创建-销毁-装配; 这样原本程序要做的事情交给了Spring,所以这属于IOC,称之为IOC容器; Spring有两个容器接口ApplicationContext是BeanFactory的子接口。它们都可以作为Spring的容器; 两种容器的区别: BeanFactory采取的懒加载的方式,在获取对象时才会实例化 ApplicationContext会在工厂初始化时立即实例化对象 BeanFactory作为顶级接口主要面向于Spring框架本身,仅提供了基础基本的容器功能如DI ApplicationContext,是BeanFactory的子接口,意味着功能比BeanFactory更多,诸如国际化,注解配置,XML配置等等,因此ApplicationContext使用更多 ApplicationContext的两个实现类区别: ClassPath表示从类路径中获取配置文件, FileSystem表示从文件系统获取配置文件 SpringBean的管理 Bean的实例化 1. 使用类构造器(默认无参数) 该方式Bean类中必须存在无参构造器 <bean id=

Spring知识点小结

≯℡__Kan透↙ 提交于 2020-01-07 13:52:00
1.Spring是什么? Spring是一个轻量级的IoC和AOP容器框架。目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求。常见的配置方式有三种:基于XML的配置、基于注解的配置、基于Java的配置。 主要由以下几个模块组成: Spring Core:核心类库,提供IOC服务; Spring AOP:AOP服务; Spring Context:提供框架式的Bean访问方式; Spring DAO:对JDBC的抽象,简化了数据访问异常的处理; Spring ORM:对现有的ORM框架的支持; Spring Web:提供了基本的面向Web的综合特性,例如多方文件上传; Spring MVC:提供面向Web应用的Model-View-Controller实现。 2、Spring 的优点? spring属于低侵入式设计,代码的污染极低; spring的DI机制将对象之间的依赖关系交由框架处理,减低组件的耦合性; Spring提供了AOP技术,支持将一些通用任务,如安全、事务、日志、权限等进行集中式管理,从而提供更好的复用。 spring对于主流的应用框架提供了集成支持。 3.Spring的AOP理解: AOP,一般称为面向切面,作为面向对象的一种补充,用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取并封装为一个可重用的模块,这个模块被命名为“切面”