in

《Spring In Action》第三版中文版 Chapter 1 Piece 1

半腔热情 提交于 2020-11-19 04:49:34
版权与免责声明:本博客文章翻译自《Spring in action》第三版,原书版权归原作者及其出版单位所有,本人仅出于个人兴趣,翻译其中内容。本人不以盈利为目的,放置在博客中仅为了方便网友阅读原作遇到困难时参考。本人严正声明,本人并不拥有翻译该作品之正当权力,因此严禁他人转载,亦不保证作品之正确性;如侵犯您的权益,望告知,即行关闭。 翻译声明:本人目前计划每天翻译两页,且不做任何工期承诺,之前未在网上发现类似内容,如已有相似内容,望告知,也省得我翻译了。 Chapter 1 Piece 1 本章涵盖: 浏览Spring的核心模块 对应用对象进行解耦 利用AOP管理横向关注点 Spring的bean容器 事情还得从一颗豆子 (bean)说起 。 1996 年,当时的 Java 还只是一个新兴的、激动人心的、即将流行的平台。大量的开发者便涌向这门语言,因为他们见识到了如何用 applets 创建丰富和动态的 web 应用。这些开发者很快发现,除了能让杂技动画人物活动起来之外,这门陌生的新语言还可以做很多事。与之前任何语言都不同的是, Java 让编写复杂的、由松散部件组成的应用成为可能。他们因为 applets 而接触 Java ,但是让他们最终决定留下来的是 Java 的组件特性。 在这一年的 12 月, Sun 公司发布了 JavaBeans 1.00-A 规范。

解决MySQL版本不一致导致的数据导入失败的问题

吃可爱长大的小学妹 提交于 2020-11-11 09:41:50
MySQL默认是向下兼容的,因此,将低版本数据库的SQL文件导入到高版本数据库时不会报错,但反过来就不行, 高版本数据库的SQL文件在导入低版本数据库时会报错,提示 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'USING BTREE... 看了网上的一些方法,大部分都是修改 SQL语句,我也照着做结果发现不行,偶然之中我发现使用Navicat Premium中的数据传输功能可以轻松地将数据库用目标数据库的语法生成SQL语句。 在要导出的数据库上单击右键,选择数据传输。 接着选择目标数据库对应的SQL格式 最后使用生成的SQL就可以成功导入到目标数据库中。 来源: oschina 链接: https://my.oschina.net/u/1380885/blog/337976

SQL查询中in和exists的区别分析

爷,独闯天下 提交于 2020-05-03 21:55:21
select * from A where id in (select id from B); select * from A where exists (select 1 from B where A.id=B.id); 对于以上两种情况,in是在内存里遍历比较,而exists需要查询数据库,所以当B表数据量较大时,exists效率优于in。 1、select * from A where id in (select id from B); in()只执行一次,它查出B表中的所有id字段并缓存起来。之后,检查A表的id是否与B表中的id相等,如果相等则将A表的记录加入结果集中,直到遍历完A表的所有记录。 它的查询过程类似于以下过程: List resultSet={}; Array A=(select * from A); Array B=(select id from B); for(int i=0;i<A.length;i++) { for(int j=0;j<B.length;j++) { if(A[i].id==B[j].id) { resultSet.add(A[i]); break; } } } return resultSet; 可以看出,当B表数据较大时不适合使用in(),因为它会B表数据全部遍历一次 如:A表有10000条记录,B表有1000000条记录

第一次使用vim遇到的问题及常用方法

醉酒当歌 提交于 2020-03-02 17:50:42
笔者初学linux和python,vim又是linux下最优秀的编辑工具,当然要学习一下下了~~~ 首先看遇到的问题,我从终端输入:vi进入vi的欢迎界面,如图: 然后,笔者傻傻的看到了上面的help,就真想help一下vim的使用方式,于是键入:help,问题出现了: 终端左下角会提示E353:Nothing in register 拙计,度娘之(原谅谷歌老是间歇性失常),原来这不是什么问题,而是自己操作错误,这时候只要按【i】或者【a】进入vi的插入模式就可以进行编辑了。。。 最后再给和我一样小白的linux新手普及几种vi的基础概念: vi的工作模式: 1. 命令行模式:用光标在字符之间来回移动,进行删除、复制、移动字符等操作,按【i】或【a】进入插入模式,按【:】(冒号)进入末行模式 2. 插入模式:输入你要编辑的内容,按【ESC】返回命令行模式,按【:】(冒号)进入末行模式 3. 末行模式:保存文输入保存命令件或退出vi,输入:【wq】存盘并退出vi,输入【q!】不保存强制退出vi,输入【w:filename】,将文件保存为制定的文件名 来源: oschina 链接: https://my.oschina.net/u/1239957/blog/148194

Camel概念【Camel’s message model(消息体模型)】

房东的猫 提交于 2020-03-02 08:33:20
Camel’s message model In Camel, there are two abstractions for modeling messages, both of which we’ll cover in this section .(Camel中有两个抽象的消息体模型) org.apache.camel.Message —The fundamental entity containing the data being carried and routed in Camel (Message 是数据承载和路由交换的基本单元) org.apache.camel.Exchange —The Camel abstraction for an exchange of messages. This exchange of messages has an “in” message and as a reply, an “out”message ( Exchange 是camel抽象出来用于Message之间的信息传递的,它有一对“in”message 和“out”message ) We’ll start by looking at Message to understand how data is modeled and carried in Camel. Then we

mahout基于用户推荐的简单例子(1)

放肆的年华 提交于 2020-01-08 11:49:21
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> mahout是机器学习的一个工具,里面封装了大量的机器学习的算法。 在Mahout实现的机器学习算法: 算法类 算法名 中文名 分类算法 Logistic Regression 逻辑回归 Bayesian 贝叶斯 SVM 支持向量机 Perceptron 感知器算法 Neural Network 神经网络 Random Forests 随机森林 Restricted Boltzmann Machines 有限波尔兹曼机 聚类算法 Canopy Clustering Canopy聚类 K-means Clustering K均值算法 Fuzzy K-means 模糊K均值 Expectation Maximization EM聚类(期望最大化聚类) Mean Shift Clustering 均值漂移聚类 Hierarchical Clustering 层次聚类 Dirichlet Process Clustering 狄里克雷过程聚类 Latent Dirichlet Allocation LDA聚类 Spectral Clustering 谱聚类 关联规则挖掘 Parallel FP Growth Algorithm 并行FP Growth算法 回归 Locally Weighted Linear

Mybatis中sql语句中的in查询,一定要判断null的情况

☆樱花仙子☆ 提交于 2019-12-14 23:21:48
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 不严谨的写法,可能会报错:in (),这种情况不符合mysql的语法。 select from loanwhere LOAN_ID in <foreach item="item" index="id" collection="list" open="(" separator="," close=")"> #{item} 要么在Mybatis的sql文件中,要么在Java程序中。 sql中的写法 : <select id="findByLoanIds" parameterType="List"> select * from p2p_loan_variation where 1= 1 <if test="list != null and list.size>0"> and LOAN_ID in <foreach item="item" index="id" collection="list" open="(" separator="," close=")"> #{item} </foreach> </if> <if test="list==null or list.size==0">and 1=0</if> </select> Java中的写法: List<LoanVariation> list = null;

in和exists的区别与SQL执行效率分析

馋奶兔 提交于 2019-12-10 18:29:43
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 本文对in和exists的区别与SQL执行效率进行了全面整理分析…… 最近很多论坛又开始讨论in和exists的区别与SQL执行效率的问题, 本文特整理一些 in和exists的区别与SQL执行效率分析 SQL中in可以分为三类:   1、形如select * from t1 where f1 in ('a','b'),应该和以下两种比较效率   select * from t1 where f1='a' or f1='b'   或者 select * from t1 where f1 ='a' union all select * from t1 f1='b'   你可能指的不是这一类,这里不做讨论。   2、形如select * from t1 where f1 in (select f1 from t2 where t2.fx='x'),   其中子查询的where里的条件不受外层查询的影响,这类查询一般情况下,自动优化会转成exist语句,也就是效率和exist一样。   3、形如select * from t1 where f1 in (select f1 from t2 where t2.fx=t1.fx),   其中子查询的where里的条件受外层查询的影响

java.lang.UnsatisfiedLinkError: com.jacob.com.D...

与世无争的帅哥 提交于 2019-12-07 15:30:41
最近做一个系统的维护改善工作,从来没接触过的业务,代码中没有一句注释。各种bug堆积转狂。 一条改到导出word的功能的时候,系统使用了jacob操作但是系统一直报错, Exception in thread "main" java.lang.UnsatisfiedLinkError: no jacob in java.libr ary.path 查了下资料 ,基本都是说没正确的放入library中,并提供了3处以上的位置,实际测试后只要放在 \Java\jdk1.6.0_32\jre\bin下就可以了。 重新配置了myeclipse的jre 选择了tomcat的jdk 重新启动后发现系统仍然报着个错误,考虑我用的是win7 64位 安装的是64位的jdk,重新下载了一个32位的安装了一下,仍然用jacob-1.17-M2-x86.dll 。依据报如上的错误。 于是我将dll重新命名成jacob.dll运行在系统中。 系统报错 j ava.lang.UnsatisfiedLinkError: com.jacob.com.Dispatch.createInstance(Ljava/lang/String;)V 我查了一下大体上是说jar和dll的版本存在冲突,我调试了用最新的版本仍然存在这个问题。 于是怀疑是自己的项目有问题,但是也没有找到什么疑问点。就重新写了一个新项目