动态

AOP与IOC区别

穿精又带淫゛_ 提交于 2020-01-05 06:05:48
Spring核心知识 Spring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架,由Rod Johnson在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring的核心是控制反转(IoC)和面向切面(AOP)。简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式)轻量级开源框架。 为什么说Spring是一个一站式的轻量级开源框架呢?EE开发可分成三层架构,针对JavaEE的三层结构,每一层Spring都提供了不同的解决技术。 • WEB层:SpringMVC • 业务层:Spring的IoC • 持久层:Spring的JDBCTemplate(Spring的JDBC模板,ORM模板用于整合其他的持久层框架) 从上面的简要介绍中,我们要知道Spring的核心有两部分: • IoC:控制反转

Spring AOP capabilities and goals

爱⌒轻易说出口 提交于 2020-01-05 05:27:47
1.AOP的作用   在OOP中,正是这种分散在各处且与对象核心功能无关的代码(横切代码)的存在,使得模块复用难度增加。AOP则将封装好的对象剖开,找出其中对多个对象产生影响的公共行为,并将其封装为一个可重用的模块,这个模块被命名为“切面”(Aspect),切面将那些与业务无关,却被业务模块共同调用的逻辑提取并封装起来,减少了系统中的重复代码,降低了模块间的耦合度,同时提高了系统的可维护性。 2.DI 和 IOC 概念   依赖注入或控制反转的定义中,调用者不负责被调用者的实例创建工作,该工作由Spring框架中的容器来负责,它通过开发者的配置来判断实例类型,创建后再注入调用者。由于Spring容器负责被调用者实例,实例创建后又负责将该实例注入调用者,因此称为依赖注入。而被调用者的实例创建工作不再由调用者来创建而是由Spring来创建,控制权由应用代码转移到了外部容器,控制权发生了反转,因此称为控制反转。 3.BeanFactory与ApplicationContext   ApplicationContext是BeanFactory的子接口,也被称为应用上下文。BeanFactory提供了Spring的配置框架和基本功能,ApplicationContext则添加了更多企业级功能(如国际化的支持),他另一重要优势在于当ApplicationContext容器初始化完成后

关于solr7之后版本的动态域,不能使用中文作为拼接索引

可紊 提交于 2020-01-04 14:37:03
在做某电商搜索的时候,由于需要根据规格搜索。所以我们将商品的数据同步到solr,于是出现了动态域乱码问题 当时,需要对规格数据进行处理,我们将动态域的格式设置为item_spec_*当时的思路是:将规格的字段名作为索引,如某手机规格为:“item_spec_运行内存”. 结果变成了这个样子: 问题在于,无法使用汉字,可是不使用汉字,也没有合适的数据作为动态域. 所以想到一种方法.只要不是汉字,数据同步到solr就不会出现乱码情况.于是同步时,将其使用URLEncoder.encode()方法格式为UTF-8.将其转码,由于是JDK自带的.所以不需要加依赖.在某方法中具体代码如下: TbItemExample example=new TbItemExample(); TbItemExample.Criteria criteria = example.createCriteria(); criteria.andStatusEqualTo("2");//已审核 //查到了所有已审核的 List<TbItem> itemList = itemMapper.selectByExample(example); System.out.println("===商品列表==="); for(TbItem item:itemList){ //为了转化动态域,得到数据库中String类型的JSON对象

动态内存分配与指向它的指针变量

谁说我不能喝 提交于 2020-01-04 05:49:44
1.动态内存分配的含义   c语言允许建立动态内存分配区域,以存放一些临时用的数据,这些数据不必再程序的声明部分定义,也不必等到函数结束时才释放,而是要随时开辟,不需要随时释放,这些数据是临时存放在一个特定的自由存储区(堆),可以根据需要向系统申请所需要大小的空间,由于未在声明部分定义它们为变量或数组,因此不能通过变量名或数组名去引用这些数据,只能通过指针来引用。 2.建立内存的动态分配   对内存的动态分配是通过系统提供的函数库来实现的,主要有malloc,calloc,free,realloc这四个函数: (1).使用malloc函数   其函数原型为void *malloc(unsigned int size);   其作用是在内存的动态存储区域中分配一个长度为size的连续空间,形参size的类型定义为无符号整形(不允许为负数)。次函数的值(即返回值)是所分配区域的第一个字节的地址,或者说,次函数是一个指针型函数,返回的指针指向该分配区域的开头位置,如:   malloc(100)//开辟100字节的临时分配区域,函数值为其第一个字节的地址   注意其指针的基类型为void,即不能执行任何类型的数据,只能提供一个地址,如果此函数未能成功执行(如内存空间不足),则返回空指针。 (2).使用calloc函数   其函数原型为void *calloc(unsigned n,

动态横向菜单列表与竖向TableView联动功能

耗尽温柔 提交于 2020-01-04 01:13:54
最近新接手iOS项目,本人对于iOS开发一窍不通,自学了一个多月尝试写一写。因项目中需要,这里自己自定义了一个swift版的 动态横向菜单列表与竖向TableView联动功能 ,本人是菜鸟,以完成目标需求为目的,这里分享下,希望大神勿喷,若有不足之处,求指教! 好了,我们先看下效果: 下载地址: https://download.csdn.net/download/lansebingkuai/12077350 来源: CSDN 作者: lansebingkuai 链接: https://blog.csdn.net/lansebingkuai/article/details/103819333

Axure教程:如何使用动态面板?动态面板功能详解

冷暖自知 提交于 2020-01-03 09:04:21
写了几个Axure教程之后发现,可能教程的起点有些高了,过分的去讲效果的实现,而忽略了axure功能以及基础元件的使用,那么从这个教程开始,把这些逐渐的展开讲解。 关于Axure动态面板 动态面板是axure原型制作中使用非常频繁的一个元件,主要用途就是实现一些动态的交互效果。所以,如果动态面板使用不熟悉的话,对axure原型的制作会有很大的影响,那么动态面板都能做什么呢?主要有以下几个方面: 1、 隐藏与显示 2、 滑动效果 3、 拖动效果 4、 多状态效果 以上这些效果都在移动面板的元件属性里面体现。 那通过这几个属性都能实现什么样的功能呢?简单的举几个例子。 1、 显示隐藏效果 我们经常在做原型的时候,需要点击按钮后出现一些界面上没有的元素,比如: 情景A:登录功能在不填写用户名时点击登录按钮,显示出要求用户填写用户名的提示。 情景B:当我们需要在用户的某一个操作时,弹出一个提示框。当用户点击提示框的确定按钮时提示框消失。 诸如以上情景都需要用到动态面板的显示隐藏效果。 动态面板初始状态是隐藏还是显示,可以通过右键单击动态面板—编辑选项—设为显示(或)设为隐藏来实现。 2、 动态面板的滑动效果 与显示隐藏效果不同,动态面板的滑动效果一般是通过其他交互事件来激发的,可能是点击某个按钮,也可能是页面加载时实现。比如: 情景A:网站上的一些滚动文字的效果。 情景B:点击登录按钮

Axure学习之线框图-动态面板基础篇

懵懂的女人 提交于 2020-01-03 09:04:06
原始学习资源: http://www.axure.com/dynamic-panels-basic 如果有什么地方不通畅或是有不清楚的地方,欢迎指教! 意译: 动态面板是实现较为复杂交互的很重要的部分。 动态面板的主要思想是在同一块区域显示不同的内容。 动态面板最大的特点就是“动态”,这个动态表现为两个部分,显示/隐藏、不同的状态。 简单的例子:官方例子见: show-hidden-panel-tutorial 当用户登录时会有成功和失败两种情况,成功时就跳到指定页面,而失败又分为很多情况: 1、帐号没填、密码没填(当然这种情况下,登录按钮应该是不能点的;这里只是举例) 2、帐号不存在、或是输错了 3、验证码错了 4、密码错了 那么就应该建一个动态面板,为各种错误设置不同的状态,并为各状态设置好合适的内容。 设置这个动态面板为隐藏(在点登录前是看不到的) 然后再为登录按钮指定不同的交互(应该是5种了)。 上图只做三种情况。可以自行设定。 另一个例子,制作tab标签区域:(官方例子见: tab-control-tutorial ) 上图是京东首页的一块(在京东快报下方) 比较简单: 1、建立动态面板,并命名,然后做好动态面板的4个状态 2、建立四个按钮,输入文字并设置好默认状态 3、为每个按钮设置鼠标移入的交互,将动态面板改为对应状态 4、为四个按钮设置悬停样式 不足之处

Axure学习之线框图-动态面板高级篇

送分小仙女□ 提交于 2020-01-03 09:03:44
原始学习资源: http://www.axure.com/dynamic-panels-advanced 如果有什么地方不通畅或是有不清楚的地方,欢迎指教! 意译: 相对于按钮形状来说,动态面板的交互行为更多,请对比: VS 而且,动态面板中还可包含动态面板,如图: 这两个重要的特性,就赋予了动态面版强大的功能: 1、多级目录(视频教程见 dynamic-panels-advanced (似乎需要番习习檣才能看到视频),文本教程见 accordion-control-tutorial ) 要点: 为 标题框 设置点击时切换内容动态面板的可见性 为内容动态面板设置显示时下移(相对值)下面的动态面板;显示时上移(相对值)下面的动态面板 移动时下面的面板跟随。 自己试一下就知道了,重要的是要为各动态面板统一命名(相对于程序装变量的命名规则,这个简单多了),不然的话元素多了就乱了。 用到了动态面板的OnMove\OnShow\OnHide交互 2、相册(直译是相片传送带) (6.0版本的教程见: photo-carousel-tutorial-60 6.5版本的教程见: photo-carousel-tutorial ) 这个比多级目录简单多了,只不过多级目录是一下子就出现,相册的例子是加了出入的效果 而且6.5版本的优化了很多,6.0的麻烦太多了。 3、可拖拽地图 (教程见

第一章 java概述

雨燕双飞 提交于 2020-01-03 04:05:14
Java 平台 Java ME 适用于小型设备和智能卡的Java嵌入式平台 Java SE 适用于桌面系统的java标准平台 Java EE 适用于Java企业级应用平台 Java特点 跨平台特性 Java虚拟机三个特点: 动态性:动态分配数组的存储空间、动态创建对象、动态链接数据库 异常处理:提供可靠的异常处理机制 多线程:多线程方式运行 JVM详解 Java语言设计体现平台无关性 :int整数占用32位,与操作系统16、32、64位无关 完全面向对象和简单性 java对c++基本语法改进如下: · 不支持全局变量和宏替换,使用最终变量代替宏替换,避免全局变量和宏替换的副作用 · 为每种数据类型分配固定的长度,实现数据类型的平台无关性 · 进行相容性的检查,防止不安全的类型转换 · 不支持goto语句 · 不支持指针类型,通过引用模型实现指针功能 · 不支持结构类型,使用类代替;不支持联合类型 · 不支持头文件,用import语句声明导入包中的类或接口 · 内存动态存储且自动管理,动态申请数组和对象的存储空间,自动释放空间,没有指针操作 java语言完全面向对象,所有设计类中实现,一个Java程序就是类的集合 java对c++面向对象机制改进如下: · 为8种基本数据类型提供了基本数据类型包装类,使基本数据类型与类相关联,体现完全面向对象 · 将数组设计为引用类型

MyBatis 动态SQL

拥有回忆 提交于 2020-01-02 21:04:48
动态 SQL MyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其他类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句有多么痛苦。拼接的时候要确保不能忘了必要的空格,还要注意省掉列名列表最后的逗号。利用动态 SQL 这一特性可以彻底摆脱这种痛苦。 通常使用动态 SQL 不可能是独立的一部分,MyBatis 当然使用一种强大的动态 SQL 语言来改进这种情形,这种语言可以被用在任意的 SQL 映射语句中。 动态 SQL 元素和使用 JSTL 或其他类似基于 XML 的文本处理器相似。在 MyBatis 之前的版本中,有很多的元素需要来了解。MyBatis 3 大大提升了它们,现在用不到原先一半的元素就可以了。MyBatis 采用功能强大的基于 OGNL 的表达式来消除其他元素。 if choose (when, otherwise) trim (where, set) foreach if 动态 SQL 通常要做的事情是有条件地包含 where 子句的一部分。比如: <select id="findActiveBlogWithTitleLike" resultType="Blog"> SELECT * FROM BLOG WHERE state = ‘ACTIVE’ <if test="title != null"> AND title like