文章目录
1 查看maven仓库位置
maven查看仓库位置:mvn help:effective-settings
2 SpringBoot & eclipse 打包jar
首先要在pom文件里引入插件
<!-- 这个插件,可以将应用打包成一个可执行的jar包;-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
在项目本地文件夹按住Crtl+Shift+右键打开命令窗口,执行
mvn clean package
(要配置好maven环境变量)
Microsoft Windows [版本 10.0.17134.590]
(c) 2018 Microsoft Corporation。保留所有权利。
D:\Java999\springboot>mvn clean package
Microsoft Windows [版本 10.0.17134.590]
(c) 2018 Microsoft Corporation。保留所有权利。
D:\Java999\springboot\target>java -jar springboot-0.0.1-SNAPSHOT.jar
打包成功后,在项目target目录下会有一个项目jar包
进入到jar包的目录,运行cmd, 执行代码
java -jar jar包
端口访问
3 项目pom.xml oracle的依赖有问题
项目从svn上down想来,获取不到oracle6的本地jar,原因好像是说oracle是收费的,maven无法之接在仓库中导入。于是手动copy了oracle6的文件夹放在仓库里,update了项目,结果发现依赖还是有问题。但是项目能跑起来就没有管,但是今天打包springboot项目的时候,那个确实的jar就报错了!解决办法,重新导入jar吧!
第一步:去oracle下载对应需要的jar包,放在某一个目录下
第二步:打开maven仓库所在目录的 com 文件夹下 , 打开cmd模式(按住Shift+鼠标右键.选择在本目录下打开命令窗口)
第三步:输入Maven的一个oracle安装的命令:
mvn install:install-file -Dfile=E:/bosi/ojdbc6.jar -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.1.0 -Dpackaging=jar -DgeneratePom=true
在com目录下会出现oracle文件夹,可以查看到里面有jar包。eclipse update一下项目,就ok了!
<!-- oracle -->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.1.0</version>
</dependency>
4 SVN下载的项目,没有修改文件却有(*)星号
在 window --> Preferences --> Team --> Ignored Resources 添加相应的 需要屏蔽的文件:
.settings
.classpath
.project)
5 设置远程数据库用户、ip访问权限
grant all PRIVILEGES on test_db.* to root@'192.168.1.101' identified by '123456';
上面的语句表示将 test_db 数据库的所有权限授权给 root 这个用户,允许 root 用户在 192.168.1.101 这个 IP 进行远程登陆,并设置 root 用户的密码为 123456 。
下面逐一分析所有的参数:
all PRIVILEGES 表示赋予所有的权限给指定用户,这里也可以替换为赋予某一具体的权限,例如select,insert,update,delete,create,drop 等,具体权限间用“,”半角逗号分隔。
test_db.* 表示上面的权限是针对于哪个表的,test_db指的是数据库,后面的 * 表示对于所有的表,由此可以推理出:对于全部数据库的全部表授权为“*.*”,对于某一数据库的全部表授权为“数据库名.*”,对于某一数据库的某一表授权为“数据库名.表名”。
root 表示你要给哪个用户授权,这个用户可以是存在的用户,也可以是不存在的用户。
192.168.1.101 表示允许远程连接的 IP 地址,如果想不限制链接的 IP 则设置为“%”即可。
123456 为用户的密码。
如何开启MySQL的远程帐号-3)执行了上面的语句后,再执行下面的语句,方可立即生效。
> flush privileges;
grant all PRIVILEGES on *.* to qiuhao@'%' identified by 'qiuhao';
收回权限 revoke all on *.* from 'qiuhao' @'%';
具体参考博客:https://www.cnblogs.com/zhangzhu/archive/2013/08/22/3274831.html
6 Redis cmd启动
redis-server.exe redis.windows.conf
D:\Redis-x64-3.2.100>redis-server.exe redis.windows.conf
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 3.2.100 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 2900
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
[2900] 14 Mar 14:23:23.445 # Server started, Redis version 3.2.100
[2900] 14 Mar 14:23:23.446 * The server is now ready to accept connections on port 6379
这时候另启一个 cmd 窗口,原来的不要关闭,不然就无法访问服务端了。
切换到 redis 目录下运行:
redis-cli.exe -h 127.0.0.1 -p 6379
7 HTML自定义元素属性,大写会自动转为小写
+ '<option uid='+ item.uId +' value="0" deptId="'+ item.deptId +'"'
<option uid="5942BF6A91DB4967BF83A80A359383D0" value="0" deptid="532600.001">高校</option><option uid="5942BF6A91DB4967BF83A80A359383D0" value="1" deptid="532600.001" selected="">K12</option>
deptid="532600.001" deptId变为deptid了
8 js正则匹配字符串
匹配,以deptid="开头,以"结尾的字符串
var deptId = innerHTML.match(/deptid="\S*"/);
console.log(deptId);
9 手机清楚缓存
微信浏览器打开网址“http://debugx5.qq.com”,勾选如下设置:

点击“清除”按钮即可。
10 ajax请求不能重定向
股拦截器拦截重定向是不起作用的,不会跳转,所以得靠返回值来判断,页面来控制跳转登录
String url = request.getRequestURL().toString();
HttpSession session = request.getSession();
Object obj = session.getAttribute(SessionConsts.USER_SESSION_KEY);
// 未登录
if (null == obj) {
String servletPath = request.getServletPath();
log.error("session失效,当前url:" + url + ";module Paht:" + servletPath);
//Ajax异步
if (request.getHeader("x-requested-with") != null
&& request.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest")) {
// 在响应头设置session状态
response.setHeader("sessionstatus", "timeout");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
response.getWriter().print("error");
} else {
response.sendRedirect(request.getContextPath() + "/login.html");
}
return false;
}
return super.preHandle(request, response, handler);
ajax返回接受,error判断
$.ajax({
url : path + 'system/updateSysFunConfigs',
type : "post",
dataType : "json",
contentType: "application/json",
data : JSON.stringify(params),
success : function(result) {
if (result.success) {
layer.alert(result.msg, {icon: 1});
}else {
layer.alert(result.msg, {icon: 5});
obj.elem.checked = !obj.elem.checked;
form.render();
}
},
error:function(XMLHttpRequest, textStatus){
isTimeout(XMLHttpRequest);
}
});
//判断ajax请求,session失效,跳转登录
function isTimeout(XMLHttpRequest){
var redirect=XMLHttpRequest.getResponseHeader("sessionstatus");
if(redirect=="timeout"){
layer.confirm("登录超时,请重新登录", {icon: 5,shade: 0.1,btn: ['确定'], closeBtn: 0},function(index) {
window.location.href=path + '/login.html';
})
}
}