spring boot 网站图标设置
这个真是超冷的知识。spring boot写的restful api,在浏览器地址栏访问的时候,总是一片绿色的小叶子。如果想改变它,丢一个favicon.icon文件到resources/static目录下,就可以了。
CentOS 7 Lantern
安装必备软件
sudo yum install epel-releasesudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.rosudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpmsudo yum install aliensudo yum install rpmrebuild
下载 lantern 的 deb 包(for ubuntu), 这里。
转换 deb 包到 rpm 包
sudo alien -r lantern-installer-64-bit.debsudo rpmrebuild -pe lantern-4.8.2-2.x86_64.rpm
在弹出的配置文件中,将最后面的内容替换成以下内容
(Converted from a deb package by alien version 8.95.)%files#%dir %attr(07 ...
实现Java Web框架的一种简单思路
在 Java EE 领域,Spring 全家桶基本处于垄断地位。作为一个编程人员,用框架越久,就离底层越远(虽然我们离计算机底层已经十万八千里远了)。于是萌生了自己写一个 Java Web 框架的想法,花了些业务时间,写出来一个低仿低配版 Spring 。这篇文章从思路层面做一下总结。
概述抛却框架,使用 java 去实现一个 Web 项目,核心是 Servlet。一个最简单的 Web 项目,可以直接继承HttpServlet,重写service之类的方法,并使用@WebServlet的注解指明urlPattern即可。
简单的去看一个 web 项目,就是拿到request,根据request的内容,比如method和path,去查找并执行指定的业务逻辑,生成响应后,发送response。
在spring mvc中,使用@Controller注解去标明这是一个响应请求的类,使用方法上的@RequestMapping等注解去标明这个方法是用来响应哪个method和path。生成响应的整个过程,因为可能会涉及到很复杂的业务处理,又往下分出服务层,模型层等等,这里又涉及到@Service ...
AOP浅析
aop 是现代web框架底层核心技术之一,很多人能熟练运用 @aspect @joinpoint 去实现业务代码,但未必明白 aop 的来龙去脉。考虑这样一个say():
public class Hello0 { public void say(){ System.out.println("hello"); }}
如果想在say()前后执行一些增强代码,该怎么做呢?
实现方案一小A采用了下面的写法。很不幸,小A这段代码写完后,就被辞退了。
public class Hello0plus { private Hello0 hello0; public Hello0plus() { this.hello0 = new Hello0(); } public void say(){ before(); hello0.say(); after(); } priva ...
JointJS试用记录
由于一个项目需要绘制流程图。在做JS元素的选型时,看到 JointJS 的介绍,感觉应该可以满足我们的需要。不过还是得试试才知道。所以我打算按照以下顺序去试用 JointJS 。
快速了解如何使用 JointJS
试验如何用 JointJS 实现我们的关键需求点
自定义元素
自定义元素属性
与后端交互
JointJS速览入门Hello World下面时官方给出的入门demo例子,可以看到 JointJS 依赖jquery、lodash、backbone,使用 JointJS 只需要引入joint.css和joint.js即可。定义一个div用来盛放绘制的图形。
<!DOCTYPE html><html><head> <link rel="stylesheet" type="text/css" href="css/joint.css" /></head><body><!-- content --><div id=" ...
使用JS检测自定义协议是否存在
之前在《自定义通用URL协议实现在浏览器中打开本机任意程序》介绍了通过自定义协议使的浏览器可以调起客户端本地程序的方法,在企业环境的实际应用中,又面临着如何检测自定义的协议是否存在的问题,ie下可以通过activex检测注册表项,chrome该怎么办呢?有没有通用的解决办法呢?答案是肯定的,甚至有人已经将该功能封装成了通用JS。具体如下。
访问 github,下载 protocolcheck.js 。引用该js后,即可使用以下代码检测
window.protocolCheck(href,callback)
示例代码
example.html。ff协议是自定义通用URL协议实现在浏览器中打开本机任意程序文中示例的协议。你可以替换成任意存在的协议。
<!DOCTYPE html><html><head lang="zh"> <meta charset="UTF-8"> <title>自定义协议探测</title></head><body& ...
yum删除无用的包
yum在安装包时,会自动安装相关依赖,但是yum在卸载包时却只会卸载指定的包,这就导致了系统里多了很多当初当作依赖被安装进来的无用的包。由于linux系统的机制,没有特别好的解决办法,有以下两个方法近似处理。
使用 yum autoremove 命令
sudo yum autoremove
这个命令的问题是识别的并不完整。但基本没有风险。
使用 yum history undo命令
sudo yum install tomcatsudo yum history list tomcat已加载插件:fastestmirrorID | 命令行 | 日期和时间 | 操作 | 变更数 ------------------------------------------------------------------------------- 47 | install tomcat.noarch | 2018-08-21 10:56 | Install | 21 history ...
spring-boot-ws从.wsdl到?wsdl
spring-boot-starter-web-services 发布的webservice默认url是http://xx:xx/xxx.wsdl,不符合常规的http://xx:xx/xxx?wsdl格式,我们可以利用urlrewritefilter去做一下转发,让一切都回到熟悉的样子。详情如下:
添加依赖<dependency> <groupId>org.tuckey</groupId> <artifactId>urlrewritefilter</artifactId> <version>4.0.4</version></dependency>
实现UrlRewriteFilterimport org.springframework.beans.factory.annotation.Value;import org.springframework.core.io.Resource;import org.springframework.stereotype.Compone ...
SQL Server 使用SQL获取建表语句
SQL Server 没有提供函数或存储过程直接查看建表语句(?),当然它的DBMS客户端提供了这个功能,但只为了这点小事就安装那个大玩意?…还是自己写一个更快。
完整代码create Procedure sp_helptable( @table varchar(100))-- exec sp_helptable tablename-- 增加获取注释信息(感谢 袁罗)AS Begindeclare @sql table(s varchar(1000), id int identity)-- 创建语句insert into @sql(s) values ('create table [' + @table + '] (')--获取注释SELECTA.name AS table_name,B.name AS column_name,C.value AS column_descriptioninto #columnspropertiesFROM sys.tables AINNER JOIN sys.columns B ON B.object ...
Spring boot starter开发指南
Spring boot一大特色就是提供了许多启动器,比如spring-boot-starter-web,spring-boot-starter-cache等,这些启动器实现了自动配置,方便用户更快的聚焦于实际业务。对于我们来说,这也提供了一个新的思路去实现组件化:将过往的jar包封装提供类/方法依赖的模式改进成bean注入的模式。而这是通过我们可以开发自己的启动器去实现的。下面就说说如何去做。
创建工程starter工程可以不是spring boot,只需要是一个maven工程即可。此时,我们需要在pom中指明依赖管理器。当然,如果你用spring boot去构建starter工程就不需要再声明这点。
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-d ...