springboot中application.properties常用配置

数据库

spring.datasource.url=jdbc:mysql://localhost:3306/going_user?useUnicode=true&characterEncoding=UTF-8&rewriteBatchedStatements=true&autoReconnect=true&useSSL=false
spring.datasource.username=root
spring.datasource.password=123
spring.datasource.driverClassName=com.mysql.jdbc.Driver

缓存

spring.redis.host=localhost
spring.redis.database=1
spring.redis.password=123
spring.redis.port=6379
#spring.redis.pool.max-idle=8  
#spring.redis.pool.min-idle=0  
#spring.redis.pool.max-active=8  
#spring.redis.pool.max-wait=-1

日志

logging.file=var/log/user.log
#logging.path=var/log
logging.level.org.springframework.web=INFO
logging.level.org.hibernate=WARN
logging.level.org.springframework.data=DEBUG

server

server.port=8083
server.tomcat.compression=on
#server.tomcat.compression=4096
server.tomcat.compressableMimeTypes=application/json,application/xml

secruity

security.user.name=admin
security.user.password=admin    

springboot项目中使用docker-maven-plugin

<plugin>
        <groupId>com.spotify</groupId>
        <artifactId>docker-maven-plugin</artifactId>
        <version>0.4.12</version>
        <configuration>
            <imageName>${project.name}</imageName>
            <baseImage>java</baseImage>
            <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
            <resources>
                <resource>
                    <targetPath>/</targetPath>
                    <directory>${project.build.directory}</directory>
                    <include>${project.build.finalName}.jar</include>
                </resource>
            </resources>
            <forceTags>true</forceTags>
        </configuration>
    </plugin>

mysql快速拷贝数据库

假设已经存在数据库db1,拷贝到新建的db2

  1. 新建数据库db2

    create database db2 default charset utf8mb4;
    
  2. 在shell控制台使用mysqldump命令

    mysqldump db1 -uroot -p123 --add-drop-table | mysql db2 -uroot -p123    
    

内容垂直居中

虽然Div布局已经基本上取代了表格布局,但表格布局和Div布局仍然各有千秋,互有长处。比如表格布局中的垂直居中就是Div布局的一大弱项,不过好在千变万化的CSS可以灵活运用,可以制作出准垂直居中效果,勉强过关。 要让div中的内容垂直居中,无非有以下几种方法,等我一一列举:

  1. 行高(line-height)法

    如果要垂直居中的只有一行或几个文字,那它的制作最为简单,只要让文字的行高和容器的高度相同即可,比如:

    p { height:30px; line-height:30px; width:100px; overflow:hidden; }
    

    这段代码可以达到让文字在段落中垂直居中的效果。

  2. 内边距(padding)法

    另一种方法和行高法很相似,它同样适合一行或几行文字垂直居中,原理就是利用padding将内容垂直居中,比如:

    p { padding:30px; }
    

    这段代码的效果和line-height法差不多。

  3. 模拟表格法

    模拟表格法其实就是用CSS中对元素的声明让块元素像表格一样显示,用 到的CSS属性有display、vertical-align等。 先看下面的Html代 码:

    <div id="box"> <div id="content">居中显示</div> </div>
    

    参照以上Html代码,让最外面名为box的Div呈表格样式显示,然后再让 box中名为content的Div呈单元格显示,并利用vertical- align:middle让其垂直居中,这样就模拟出来和表格一样的显示方 式,CSS代码如下:

    #wrap { height:400px; display:table; } #content { vertical-align:middle; display:table-cell; border:1px solid #FF0099; background:#000; width:400px; }
    

    但这种方法有一个弊端,由于IE浏览器对高度理解会产生错误,所以这种方法仅对Firefox有效,对IE无效,既然这样,我们就需要找出对IE的修正方法,于是有了另外一种方法。

  4. 定位法

    顾名思义,定位法是利用CSS定位属性position对元素进行定位的方法,也属于模拟方法,不过它对IE的支持还是不错的。 它的Html代码为:

    <div id="box">
    <div id="sub"> 
    <div id="content">垂直居中</div>
    </div>
    </div>
    

    这段代码比上一种方法中多出了一个名为sub的Div,它的作用是用来定位,原理就是:首先让box出于相对定位,sub相对box出于相对定位,位于box垂直方向的50%,再让content中的真正内容出于sub垂直方向的-50%,从而制作出content在box中垂直居中的效果,它们的CSS代码如下:

    #wrap { border:1px solid #000; background:#F00; width:400px; height:400px; position:relative; } #subwrap { position:absolute; top:50%; } #content { border:1px solid #000; position:relative; top:-50%; color:#FFF; }
    

    这段代码无论是在IE中还是Firefox中,都能正常居中了

JS中手动触发事件的方法

如果大家将一张网页看成一个form的话,大致上就成了一个web form的模型。在win form 下要想手动触发某一个对象的事件是很简单的,只要发送一条消息即可达成。(PostMessage) 但是网页并不是基于消息机制的,如果我们想在一张网页上写出一个类似于按键精灵的功能该如何实现呢?
为大家介绍js下的几个方法:

  1. createEvent(eventType)
    参数:eventType 共5种类型:
    Events :包括所有的事件.
    HTMLEvents:包括 'abort', 'blur', 'change', 'error', 'focus', 'load', 'reset', 'resize', 'scroll', 'select', 
                              'submit', 'unload'. 事件
    UIEevents :包括 'DOMActivate', 'DOMFocusIn', 'DOMFocusOut', 'keydown', 'keypress', 'keyup'.
                            间接包含 MouseEvents. 
    MouseEvents:包括 'click', 'mousedown', 'mousemove', 'mouseout', 'mouseover', 'mouseup'. 
    MutationEvents:包括 'DOMAttrModified', 'DOMNodeInserted', 'DOMNodeRemoved', 
                                'DOMCharacterDataModified', 'DOMNodeInsertedIntoDocument', 
                                'DOMNodeRemovedFromDocument', 'DOMSubtreeModified'. 
    
  2. 在createEvent后必须初始化,为大家介绍5种对应的初始化方法
    HTMLEvents 和 通用 Events:
    initEvent( 'type', bubbles, cancelable )
    
    UIEvents :
    initUIEvent( 'type', bubbles, cancelable, windowObject, detail )
    
    MouseEvents:
    initMouseEvent( 'type', bubbles, cancelable, windowObject, detail, screenX, screenY, 
    clientX, clientY, ctrlKey, altKey, shiftKey, metaKey, button, relatedTarget )
    
    MutationEvents :
    initMutationEvent( 'type', bubbles, cancelable, relatedNode, prevValue, newValue, 
    attrName, attrChange ) 
    
  3. 在初始化完成后就可以随时触发需要的事件了,为大家介绍targetObj.dispatchEvent(event)
    使targetObj对象的event事件触发
    需要注意的是在IE 5.5+版本上请用fireEvent方法,还是浏览兼容的考虑
  4. 例子
    //例子1 立即触发鼠标被按下事件
    var fireOnThis = document.getElementById(‘someID’);

    var evObj = document.createEvent('MouseEvents');
    evObj.initMouseEvent( 'click', true, true, window, 1, 12, 345, 7, 220, false, false, true, false, 0, null );
    fireOnThis.dispatchEvent(evObj);
    

    //例子2 考虑兼容性的一个鼠标移动事件
    var fireOnThis = document.getElementById(‘someID’);
    if( document.createEvent )
    {

    var evObj = document.createEvent('MouseEvents');
    evObj.initEvent( 'mousemove', true, false );
    fireOnThis.dispatchEvent(evObj);
    

    }
    else if( document.createEventObject )
    {
    fireOnThis.fireEvent(‘onmousemove’);
    }

设置多行文本显示省略号

display: -webkit-box; 必须结合的属性 ,将对象作为弹性伸缩盒子模型显示 。
-webkit-box-orient 必须结合的属性 ,设置或检索伸缩盒对象的子元素的排列方式 。
text-overflow: ellipsis;,可以用来多行文本的情况下,用省略号“…”隐藏超出范围的文本 。
overflow : hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;

window安装mysql5.6

  1. 到mysql官网下载mysql-installer-community-5.6.25.0.msi

  2. 点击安装–自定义安装–安装server

    不需要加入到service服务(后面通过命令安装)

  3. 管理员身份打开命令提示符(cmd)
    进入到mysql的server安装目录的bin下

    cd C:\Program Files\MySQL\MySQL Server 5.6\bin
    

    关闭正在运行的mysql服务

    mysqladmin -uroot -p shutdown 
    
  4. 把服务注册到服务列表里

    mysqld --install 
    
  5. 启动服务

    net start mysql 
    
  6. 设置密码

    做完上面的步骤可能导致原先安装时候设置的密码无效,这时候应该默认 没有密码,需要重新设置密码

    mysqladmin -u root password 123456
    

    修改密码:

    mysqladmin -u root -p123456 password 123456
    
  7. 进入mysql

    mysql -uroot -p123456
    

sublimetext个人习惯的快捷键设置

[
{ “keys”: [“ctrl+d”], “command”: “find_under_expand” },
// 删除一整行
{ “keys”: [“super+d”], “command”: “run_macro_file”, “args”: {“file”: “Packages/Default/Delete Line.sublime-macro”} },
// 光标移动到下一行
{ “keys”: [“shift+enter”], “command”: “run_macro_file”, “args”: {“file”: “Packages/Default/Add Line.sublime-macro”} },
// 当前行与前一行互换位置
{ “keys”: [“super+up”], “command”: “swap_line_up” },
// 当前行与下一行互换位置
{ “keys”: [“super+down”], “command”: “swap_line_down” }
]

虚拟机参数配置

-Xverify:none // 避免虚拟机进行子节码验证,因为eclipse子节码编译已经很可靠

-Xmx512m 堆容量

-Xms512m

-Xmn128m //新生代容量

-XX:PermSize=128m

-XX:MaxPermSize=128m

-XX:+DisableExplicitGC // 屏蔽eclipse显式触发System.gc()

-XX:+UseConcMarkSweepGC

-XX:+UseParNewGC (新生代收集器)