扫描实现 Ioc 动态注入 参考: http://www.private-blog.com/2017/11/16/java-%e6%89%ab%e6%8f%8f%e5%ae%9e%e7%8e%b0-ioc-%e5%8a%a8%e6%80%81%e6%b3%a8%e5%85%a5/ 实现思路: 1.首先要通过 IO 去找到指定的路径(当前类的全路径)下的所有的 class文件: 2.通过反射机制 使用文件的全路径来 初始化对象: 3.接下来判断这个对象是否有使用了自定义的注解,如果有就保存到 cl…
提取注解信息 使用注解修饰了类.方法.成员变量等成员之后,这些注解不会自己生效,必须由开发者提供相应工具来提取并处理注解信息.   Java使用java.lang.annotation.Annotation接口代表程序元素前面的注解,该接口是所有注解的父接口.Java5在java.lang.reflect包下新增了AnnotatedElement接口,该接口代表程序中可以接受注解程序元素(就是哪些类可以被注解修饰).该接口主要有如下几个实现类. Class: 类定义 Constructor: 构…
1. Android中的IOC(DI)框架 1.1 ViewUtils简介(xUtils中的四大部分之一) IOC: Inverse of Controller 控制反转. DI: Dependency Inject 依赖注入 完全注解方式就可以进行UI绑定和事件绑定. 无需findViewById和setClickListener等. 1.2 ViewUtils使用 compile 'org.xutils:xutils:3.5.0' compile 'com.jiechic.library:x…
依赖注入的原理 依赖注入的方式---XML配置 依赖注入的方式---注解的方式 Spring 它的核心就是IOC和AOP.而IOC中实现Bean注入的实现方式之一就是DI(依赖注入). 一 DI的原理 DI的基本原理:对象之间的依赖关系只会通过三种方式:构造函数参数,工厂方法的参数以及构造函数或工厂方法创建的对象属性设置.因此,容器的工作哦就是 在创建Bean时注入所有的依赖关系.相对于由Bean自己控制其实例化,直接在构造器中指定依赖关系或者类似服务定位器(Service Locator)这三…
不可以!!! 多个线程访问同一个类的synchronized方法时, 都是串行执行的 ! 就算有多个cpu也不例外 ! synchronized方法使用了类java的内置锁, 即锁住的是方法所属对象本身. 同一个锁某个时刻只能被一个执行线程所获取, 因此其他线程都得等待锁的释放. 因此就算你有多余的cpu可以执行, 但是你没有锁, 所以你还是不能进入synchronized方法执行, CPU因此而空闲. 如果某个线程长期持有一个竞争激烈的锁, 那么将导致其他线程都因等待所的释放而被挂起, 从而导…
在spring 3.0以上版本中,可以通过使用@value,对一些如xxx.properties文件 ,进行键值对的注入,例子如下: 一.类变量注入 1 首先在applicationContext.xml中加入:     <beans xmlns:util="http://www.springframework.org/schema/util"       xsi:schemaLocation="http://www.springframework.org/schema…
控制反转(Inversion of Control,英文缩写为IoC)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,也是轻量级的Spring框架的核心. 控制反转一般分为两种类型,依赖注入(Dependency Injection,简称DI)和依赖查找.依赖注入应用比较广泛,我们这里只介绍依赖注入. 一.IOC简介 控制反转IOC,它最主要反映的是与传统面向对象(OO)编程的不同.通常我们编程实现某种功能都需要几个对象相互作用,从编程的角度出发,也就是一个主对象要保存其他类型对象的引…
在学习Java之后会遇到很多的注解,有加载JavaBean的注解:@Component,@Service,@Controller:有获取配置文件中数值的注解@Value:有获取Http请求的数据的注解,@RequestBody.通过这些注解,spring扫描这些组件,提供相关的服务.如何自定义注解,满足自己的特定服务呢? [转]http://blog.csdn.net/mafan121/article/details/50212137 [转]http://www.jianshu.com/p/7c…
背景 目前创建一个后端请求接口给别人提供服务,无论是使用SpringMVC方式注解,还是使用SpringCloud的Feign注解,都是需要填写好@RequestMap.@Controller.@Pathvariable等注解和参数.每个接口都需要重复的劳动,非常繁琐.特别是服务治理框架的接口层不是springmvc,而都是通过TCP连接来做RPC通信的接口,这样的接口调试起来比较麻烦,测试人员也不能感知接口参数,压力测试的时候没得使用JMETER方便. 目的 为了解放双手,让后端服务开发人员提…
什么是注解? 注解:Annotation-. 注解其实就是代码中的特殊标记,这些标记可以在编译.类加载.运行时被读取,并执行相对应的处理. 为什么我们需要用到注解? 传统的方式,我们是通过配置文件(xml文件)来告诉类是如何运行的. 有了注解技术以后,我们就可以通过注解告诉类如何运行 例如:我们以前编写Servlet的时候,需要在web.xml文件配置具体的信息 我们使用了注解以后,可以直接在Servlet源代码上,增加注解-Servlet就被配置到Tomcat上了.也就是说,注解可以给类.方法…