在前文的Demo中,webApi的Controller是不能自动注入的,原因是 IHttpController 和 IController 是通过两个不同的途径进行激活的. IHttpController的激活是通过 IHttpControllerActivator 接口完成的 // 摘要: // 定义 System.Web.Http.Dispatcher.IHttpControllerActivator 所需的方法. public interface IHttpControllerActiva…
前面三篇随笔,已经完成了AOP的核心功能,但 代理对象的初始化还是有些麻烦,本文将解决该问题. Demo 片段如下: public class HomeController : Controller { /// <summary> /// 使用 Autowired Attribute 自动初始化代理对象 /// </summary> [Autowired] public Service myService { get; set; } public ActionResult Inde…
代码地址如下:http://www.demodashi.com/demo/13076.html 一.前言 众所周知(其实可能很多人不知道)MariaDB支持插件认证.在MariaDB中新建用户,常见的语句是: CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 这样创建的用户,登录时的认证方式是密码.其实创建用户的语句还可以是: CREATE USER 'username'@'host' IDENTIFIED VIA 'pluginna…
话续前文 : 自己实现简单的AOP(一)简介 在前一篇文章中,对AOP的实现方式做了一个简单介绍.接下来,引入Attribute 为方法指定增强对象,由此实现一个简单的AOP. 注意:指定的是增强对象,“对象”,也就是说Attribute标记,标记的其实是一个对象.由此.使用多态便可轻松实现增强的扩展. 自定义的Attribute /// <summary> /// 为方法标记指定的增强对象 /// <para>指定的增强,可通过代理 DelayProxy 织入</para&…
socket.io简单说明及在线抽奖demo socket.io 简介 Socket.IO可以实现实时双向的基于事件的通信. 它适用于各种平台,浏览器或设备,也同样注重可靠性和速度. socket.io的API比较简单,可以很轻松的上手,完成一个实时分析图表或者聊天室之类的程序. socket.io在浏览器中主要是通过WebSocket来实现实时通信的,WebSocket是HTML5开始提供的一种在单个 TCP 连接上进行全双工通讯的协议.WebSocket通讯协议于2011年被IETF定为标准…
转载自:http://www.alloyteam.com/2015/06/h5-jiao-hu-ye-bian-ji-qi-aeditor-jie-shao/ 本教程演示如何使用AEditor制作一个简单的H5交互页demo: 交互页demo地址: 点击打开H5交互页demo AEditor访问地址: http://aeditor.alloyteam.com Step1:设置页面背景颜色 首先我们设置页面的背景颜色,右击舞台点击“设置背景”: 然后在背景颜色中填上色值rgb(38, 61, 10…
这一章节我们讨论一下扩展添加检查订单功能,以便记录并检測输入的參数. 1.domain 蛋糕类: package com.raylee.my_new_spring.my_new_spring.ch03.topic_1_8; public class Cake { private String name = ""; public String getName() { return name; } public void setName(String name) { this.name =…
aop学习总结二------使用cglib动态代理简单实现aop功能 模拟业务需求: 1.拦截所有业务方法 2.判断用户是否有权限,有权限就允许用户执行业务方法,无权限不允许用户执行业务方法 (判断是否有权限是根据user是否为null) CGLIB的代理:目标对象没有实现接口 业务类: package ql.service.impl; public class PersonServiceBean { private String user=null; public PersonServiceB…
这一章节我们引入简单的AOP日志实现. 1.domain 蛋糕类: package com.raylee.my_new_spring.my_new_spring.ch03.topic_1_1; public class Cake { private String name = ""; public String getName() { return name; } public void setName(String name) { this.name = name; } } 烤炉类:…
这一章节我们再上一个章节的基础上加上一个检查订单功能 1.domain 蛋糕类: package com.raylee.my_new_spring.my_new_spring.ch03.topic_1_4; public class Cake { private String name = ""; public String getName() { return name; } public void setName(String name) { this.name = name; }…