ASM

Spring对注解(Annotation)处理【转】

落花浮王杯 提交于 2020-04-26 22:53:05
1.从Spring2.0以后的版本中, spring 也引入了基于注解(Annotation)方式的配置,注解(Annotation)是JDK1.5中引入的一个新特性,用于简化Bean的配置,某些场合可以取代XML配置文件。开发人员对注解(Annotation)的态度也是萝卜青菜各有所爱,个人认为注解可以大大简化配置,提高开发速度,同时也不能完全取代XML配置方式,XML 方式更加灵活,并且发展的相对成熟,这种配置方式为大多数 Spring 开发者熟悉;注解方式使用起来非常简洁,但是尚处于发展阶段,XML配置文件和注解(Annotation)可以相互配合使用。 Spring IoC容器对于类级别的注解和类内部的注解分以下两种处理策略: (1).类级别的注解:如@Component、@Repository、@Controller、@Service以及JavaEE6的@ManagedBean和@Named注解,都是添加在类上面的类级别注解,Spring容器根据注解的过滤规则扫描读取注解Bean定义类,并将其注册到Spring IoC容器中。 (2).类内部的注解:如@Autowire、@Value、@Resource以及EJB和WebService相关的注解等,都是添加在类内部的字段或者方法上的类内部注解,SpringIoC容器通过Bean后置注解处理器解析Bean内部的注解。

巨杉Tech | SequoiaDB的同城双中心容灾实践

为君一笑 提交于 2020-04-26 11:32:51
1 需求背景 随着数据的大集中,银行纷纷建设了负责本行各个业务处理的生产数据中心,数据中心因其负责了全行的各个业务系统,所以其并发业务负荷能力和不间断运行是评价一个数据中心成熟与否的关键性指标。 近年来,随着网上银行、手机银行等各种互联网业务的迅猛发展,银行数据中心的业务压力成倍增加,用户对于业务访问质量的要求也越来越高,保障业务系统7*24小时连续运营并提升用户体验成为信息部门的首要职责。 为适应互联网业务的快速增长,保障银行各业务安全稳定的不间断运行,提高市场竞争力,同时符合监管机构的要求,同城双中心、两地三中心正在成为银行的共同选择。 2 发展趋势 多数据中心的建设需要投入大量资金,其项目周期往往很长,涉及的范围也比较大。从技术上来说,要实现真正的意义上的双活,就要求网络、应用、数据库都要双活。就现阶段来看,大多数客户的多数据中心的模型可以归纳为以下几种: 主备容灾 正常情况下只有主数据中心投入运行,备数据中心处于待命状态。发生灾难时,灾备中心可以短时间内恢复对外数据访问,减轻灾难带来的损失。这种模式只能解决业务连续性的需求,单用户无法就近快速接入。灾备中心投资巨大且运维成本高昂,正常情况下灾备中心不对外提供数据服务,资源利用率偏低,造成巨大浪费。 互备方式 客户根据业务分类或者针对不同的应用设置不同的数据访问策略,部分业务以数据中心A为主,数据中心B为热备

使用class 自动创建设备节点

拈花ヽ惹草 提交于 2020-04-24 22:53:00
#include <linux/init.h> // __init __exit #include <linux/module.h> // module_init module_exit #include <linux/fs.h> // file_operations #include <asm/uaccess.h> // copy_from_user copy_to_user #include <mach/regs-gpio.h> #include <mach/gpio-bank.h> #include <asm/ string .h> #include <linux/ioport.h> // request_mem_region #include <asm/io.h> // ioremap #include <linux/cdev.h> #include <linux/device.h> #define MYNAME "led_dev" #define DEVNUM 1 #define S5PV210_PA_GPIOJ0CON 0xe0200240 volatile unsigned int *rGPJ0CON = NULL; volatile unsigned int *rGPJ0DAT = NULL; static dev_t led_dev_no = 0 ; /* ***

VS2013+MVC4,不支持BundleConfig,解决方案

你说的曾经没有我的故事 提交于 2020-04-24 13:54:33
由于没有升级到MVC5,想使用地址重写(CSS和JS压缩并重写地址),创建项目后,发现不支持这个方法!! 以下是本人的随手笔记 参考博客地址:https://www.cnblogs.com/jt789/p/4606972.html 步骤: 1、程序添加三个DLL System.Web.Optimization.dll Antlr3.Runtime.dll WebGrease.dll 2、Views中的Web.Config添加[<add namespace="System.Web.Optimization"/>] <system.web.webPages.razor> <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> <pages pageBaseType="System.Web.Mvc.WebViewPage"> <namespaces> <add namespace="System.Web.Optimization"/> </namespaces> </pages> </system.web.webPages.razor> 3、Web

给集成电路“开盖”

余生长醉 提交于 2020-04-24 13:28:18
前言 集成电路诞生于20世纪50年代,德州仪器(TI)制作了世界上第一块IC。21世纪,集成电路变得常见,以集成度高、可靠、廉价,被广泛应用。小小的硅晶片,发展了接近半个世纪,逐渐走向成熟。单片集成度从最初的几个晶体管到3500万个晶体管,制程从最初的1um到现在的6nm,从最初的造价昂贵当现在的造价一般昂贵(迄今,设计和制造集成电路仍然是高投入和耗时的工作)。 世界上第一块集成电路(来源于网络) 作为一名工程师,需要对集成电路有基本的认识。通常,数据手册可以提供芯片的很多信息。若想要设计可靠、低功耗、高性能的产品,就不能停留在数据手册上,需要深入研究集成电路内部的工作原理,其制造工艺与其性能的关系,并且具有一定的分析集成电路的能力。 硅晶片究竟有哪些奥秘?本文不尝试回答此问题,本文将介绍一种简单的、温和的打开IC封装的方法。 典型的74系列逻辑门的封装(双列直插封装) 英特尔南北桥的硅晶片(超大规模集成电路,覆晶封装) 芯片的封装 硅晶片非常小,基本上都比你的指甲盖要小的多。硅晶片非常脆弱,容易受到灰尘、液滴以及机械冲击的影响。现代的CPU以及GPU的硅晶片大多是裸露的,方便散热。为它们涂抹硅脂时需要十分小心。我曾经在换硅脂时不小心碰到了一个硅晶片的边缘,这个晶片就报废了。要保护这样小的芯片,就需要给它们封装。 硅晶片到底有多小?封装与硅晶片尺寸对比 IC封装有很多的种类

Dlib库landmark算法解析(ERT 集成回归树)

大兔子大兔子 提交于 2020-04-23 21:03:04
landmark是一种人脸部特征点提取的技术,Dlib库中为人脸68点标记,在《调用Dlib库进行人脸关键点标记》一文中有效果和标定点序号的示意图。今后可采用landmark中的点提取眼睛区域、嘴巴区域用于疲劳检测,提取鼻子等部分可用于3D姿态估计。 Dlib库使用《One Millisecond Face Alignment with an Ensemble of Regression Trees》CVPR2014中提及的算法:ERT(ensemble of regression trees)级联回归,即基于梯度提高学习的回归树方法。 该算法使用级联回归因子,首先需要使用一系列标定好的人脸图片作为训练集,然后会生成一个模型。 the shape_predictor_trainer object to train a shape_predictor using a set of training images, each annotated with shapes you want to predict. To do this, the shape_predictor_trainer uses the state-of-the-art method. 使用基于特征选择的相关性方法把目标输出ri投影到一个随机方向w上,并且选择一对特征(u,v),使得Ii(u’)-Ii(v’

《设计模式五》代理、迭代器、访问者模式

老子叫甜甜 提交于 2020-04-21 02:17:52
1.11 代理模式-Proxy(重要) 1.11.1 聚合方式(静态代理) 该代理需要和被代理对象实现相同的接口 class CarProxy implements Movable { // 可改进为 Movable m; Car car; public CarProxy (Car car) { this.car= car; } @Override public void move() { long start = System.currentTimeMillis(); car.move(); long end = System.currentTimeMillis(); System.out.println(end - start); } } interface Movable{ void move(); } 该代理聚合了car,代理了car的move方法,自己添加了打点计时。其他所有工作都是car也就是被代理对象做的 该聚合代理,也叫静态代理,可以改进代理实现Movable的各种,由于Car和代理对象都实现了Movable接口,改进为代理Movable的代理可以嵌套其他的代理,比如时间代理中聚合一个日志代理 // 即可在Car上实现时间和日志的双重代理 new CarLogProxy(new CarLogProxy(new Car()); 代理模式很像装饰模式

android字节码插桩

守給你的承諾、 提交于 2020-04-19 02:26:28
所谓字节码插桩就是在编译成字节码的文件中插入代码。那字节码插桩到底有什么好处,字节码插桩可以设置埋点,例如管理应用打开的activity,首先想到的做法是在打开一个activity的时候将activity实例存放到一个全局List中。其次就是建立一个BaseActivity,在BaseActivity中完成统计的工作,但是对于不同Activity类型(Activity,FragmentActivity等)还是很麻烦的。另外无论是第一种方式还是第二种方式都无法把第三方lib库中的activity进行管理的。在这个时候使用字节码插桩的方式就变的简单了。使用插桩的方式寻找所有class类中的onCreate方法,在onCreate方法中插入管理activity的代码,这样就一劳永逸了。插桩还有另外一个用途就是用于android的热修复。下面讲讲如何在android项目中实行插桩呢? 首先要知道android的apk的打包过程: 这幅图是android项目生成apk的打包过程,android的apk打包过程是经过一个又一个的gradle任务进行的。如下图: 我们可以在class文件打包成dex文件的时候寻找所有class文件中onCreate方法。然后在这个方法里面加入功能。 上面说的理论看起来很完美,但是对于直接在字节码中写入字节码代码,这是一件非常困难的事情,如果一个字节码改不好

spring5 源码深度解析----- 被面试官给虐懵了,竟然是因为我不懂@Configuration配置类及@Bean的原理

早过忘川 提交于 2020-04-18 05:11:48
@Configuration注解提供了全新的bean创建方式。最初spring通过xml配置文件初始化bean并完成依赖注入工作。从spring3.0开始,在spring framework模块中提供了这个注解,搭配@Bean等注解,可以完全不依赖xml配置,在运行时完成bean的创建和初始化工作。例如: public interface IBean { } public class AppBean implements IBean{ } // @Configuration申明了AppConfig是一个配置类 @Configuration public class AppConfig { // @Bean注解申明了一个bean,bean名称默认为方法名appBean @Bean IBean appBean(){ return new AppBean(); } } 默认情况下bean的名称和方法名称相同,你也可以使用name属性来指定,如 @Bean(name = "myBean") @Configuration注解使用 我们先来看看@Configuration 这个注解的定义 @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Component // @Component元注解

Linux设备模型(8)_platform设备

我的未来我决定 提交于 2020-04-17 17:51:53
1. 前言 of_match_table:匹配compatible;id_table:匹配id; 在Linux设备模型的抽象中,存在着一类称作“Platform Device”的设备,内核是这样描述它们的(Documentation/driver-model/platform.txt): Platform devices are devices that typically appear as autonomous entities in the system. This includes legacy port-based devices and host bridges to peripheral buses, and most controllers integrated into system-on-chip platforms. What they usually have in common is direct addressing from a CPU bus. Rarely, a platform_device will be connected through a segment of some other kind of bus; but its registers will still be directly addressable. 概括来说