这个仓库用于存放自己的代码片段
codesnippet's Introduction
codesnippet's People
codesnippet's Issues
Java中各个原生类型的数组对象的类型
System.out.println("原生类型" + byte[].class.getName());
System.out.println("包装类型" + Byte[].class.getName());
System.out.println("原生整数 " + int[].class.getName());
System.out.println("包装类型整数 " + Integer[].class.getName());
System.out.println(long[].class.getName());
System.out.println(Long[].class.getName());
System.out.println(double[].class.getName());
System.out.println(Double[].class.getName());
System.out.println(float[].class.getName());
System.out.println(Float[].class.getName());
System.out.println(boolean[].class.getName());
System.out.println(Boolean[].class.getName());
System.out.println(short[].class.getName());
System.out.println(Short[].class.getName());
System.out.println(char[].class.getName());
System.out.println(Character[].class.getName());
maven限制编译级别插件
Java8将流中的字符串以指定的字符串拼接
List<String> strings = Arrays.asList("111", "222", "333");
String str = strings.stream().collect(Collectors.joining("--"));
System.out.println(str);
修改MySQL数据库表的字段的编码
ALTER TABLE user MODIFY COLUMN username VARCHAR(512) CHARACTER SET utf8 ;
将不是maven管理的jar包打进webapp的lib目录下
pom文件里面依赖的jar包会在打包时拷贝到WEB-INF/lib目录下,但有时我们使用的jar包不都是maven构件,那么如何将这些第三方jar包打包进war包,解决这个问题我们可以通过maven-war-plugin这个maven插件,具体可进行如下配置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.5</version>
<configuration>
<warName>${project.artifactId}</warName>
<webResources>
<resource>
<directory>src/main/lib/(设置成第三档jar包目录)</directory>
<targetPath>WEB-INF/lib</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
swagger2的配置文件
package hello;
import io.swagger.annotations.ApiOperation;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@configuration
@EnableSwagger2
public class Swagger2 {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("Spring Boot中使用Swagger2构建RESTful APIs")
.description("更多Spring Boot相关文章请关注:http://www.baidu.com")
.termsOfServiceUrl("http://www.baidu.com")
.contact("程序猿DD")
.version("1.0")
.build();
}
}
docker中虚拟centos的命令
docker run -d -i -t /bin/bash
//进入centos容器
docker attach
mysql存储过程存储5w条数据
CREATE PROCEDURE pro1()
begin
declare i int;
set i=0;
while i<500000 do
insert into user values('哼');
set i=i+1;
end while;
end;
tomcat过滤器跨域代码段
HttpServletResponse res = (HttpServletResponse) response;
res.setContentType("text/html;charset=UTF-8");
res.setHeader("Access-Control-Allow-Origin", "*");
res.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
res.setHeader("Access-Control-Max-Age", "0");
res.setHeader("Access-Control-Allow-Headers", "Origin, No-Cache, X-Requested-With, If-Modified-Since, Pragma, Last-Modified, Cache-Control, Expires, Content-Type, X-E4M-With,userId,token");
res.setHeader("Access-Control-Allow-Credentials", "true");
res.setHeader("XDomainRequestAllowed","1");
chain.doFilter(request, response);
当thymeleaf的文本内容里面有html元素比如 th:text里面有<div>content</div>
我们可以使用th:utext="${articleContent}"来显示输出 content而不是
mysql自定义函数例子
CREATE FUNCTION sfn_GetSimilar_Rate(s1 VARCHAR(60), s2 VARCHAR(60))
RETURNS FLOAT
BEGIN
declare l1 int default 0;
declare l2 int default 0;
declare i int default 0;
declare _ss varchar(2) ;
declare j int default 0;
declare sum int default 0;
set l1=CHAR_LENGTH(s1);
set l2=CHAR_LENGTH(S2);
IF l1=0 THEN RETURN 0;
END IF;
IF l2=0 THEN RETURN 0;
END IF;
SET i=0;
set sum=0;
myloop1:LOOP
SET i=i+1;
IF i>l1 THEN LEAVE myloop1;
end if;
SET _ss=substr(s1,i,1);
SET j=0;
myloop2:LOOP
set j=j+1;
if j>l2 then
LEAVE myloop2;
end if;
if _ss=substr(s2,j,1) then
set sum=sum+1;
end if;
END LOOP myloop2;
END LOOP myloop1;
RETURN sum/l2;
END;
===========================================================================================================================
CREATE FUNCTION rand_string(n INT)
RETURNS VARCHAR(255)
BEGIN
DECLARE char_str varchar(100) DEFAULT 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
DECLARE return_str varchar(255) DEFAULT '';
DECLARE i INT DEFAULT 0;
WHILE i < n DO
SET return_str = concat(return_str, substring(char_str, FLOOR(1 + RAND()*62), 1));
SET i = i+1;
END WHILE;
RETURN return_str;
END;
gradle加载本地任何一个位置的jar文件到自己项目的classpath下
有时,我们需要的jar包不一定能在远程仓库中找到,这时我们需要加载本地的jar包。
加载单独的jar包
在项目底下添加libs目录,将jar包仍进libs目录
build.gradle配置如下:
dependencies { compile files('lib/ojdbc-14.jar')}
加载某个目录的jar包
在自己的 Gradle 项目里建立一个名为 libs (这个名字可以自己定义,不一定非要叫这个名字)的文件夹,把自己本地的 jar 包拷贝到这个文件夹中。
build.gradle配置如下:
dependencies { compile fileTree(dir:'libs',include:['*.jar'])}
Springmvc后台接收前台传来的集合或者是数组
@RequestMapping(value = {"test"})
public String test(Order order, HttpServletRequest request, HttpServletResponse response, Model model) {
//...
}
我们有一个SpringMVC的方法是这么写的,其中Order对象中有一个成员变量是这样子的:
private List orderDetailList = Lists.newArrayList();
现在我们这样写请求url
http://localhost/a/by/order/order/test?orderDetailList[0].orderId=12323&orderDetailList[1].orderId=6987&orderDetailList[5].orderId=99999&orderDetailList[1].workerId=师傅id
其中请求url中的orderDetailList[1]的下标1就是List集合中的第二个元素。后面的名字就是集合参数里面的对象的成员变量的名字,对应好,就可以接收前台对象出来的数组或者是集合,但是前提是,起名字要符合要求。
要说明一点的是,集合不能单独放在Springmvc controller的方法的参数里面。这样是赋不上值的
Java8 Stream 分区
package com.by.interfaces;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
class Student {
public String name = "Mr.Hu";
public String home = "home";
public String age = "22";
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getHome() {
return home;
}
public void setHome(String home) {
this.home = home;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
public class Main {
public static void main(String[] args) {
Student s1 = new Student();
Student s2 = new Student();
Student s3 = new Student();
Student s4 = new Student();
s2.name = "lisi";
s2.home = "上海";
s3.name = "wangwu";
s3.home = "北京";
s4.name = "Mr.Luo";
s4.home = "home";
List<Student> list = new ArrayList<>();
list.add(s1);
list.add(s2);
list.add(s3);
list.add(s4);
// Map<String, List> result = list.stream().collect(Collectors.groupingBy(Student::getHome));
//
// result.keySet().stream().forEach(s -> {
// result.get(s).forEach(student -> System.out.println(student.getName()));
// System.out.println("都是一个地方的");
//
// });
//
// System.out.println("=============================");
//
Map<Boolean, List> booleanListMap = list.stream().collect(Collectors.partitioningBy(o -> o.home.equals("home")));
booleanListMap.keySet().stream().forEach(aBoolean -> {
booleanListMap.get(aBoolean).forEach(student -> System.out.println(student.getName()));
System.out.println("完成一次分区");
});
}
}
使用HttpURLConnection类来进行Http请求头键值对的设置
客户端可以这样请求
URL url = new URL("http://localhost:8080");
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestProperty("aaa", "AAA");
httpURLConnection.setRequestProperty("bbb", "BBB");
httpURLConnection.setRequestProperty("ccc", "CCC");
httpURLConnection.connect();
System.out.println(httpURLConnection.getResponseCode());
服务器端可以这样拿到值
System.out.println(request.getHeader("aaa"));
System.out.println(request.getHeader("bbb"));
System.out.println(request.getHeader("ccc"));
同样的服务端可以这样进行设置响应头
response.setHeader("hello", "heiheihei");
HttpUrlConnection类可以这样拿到值
System.out.println(httpURLConnection.getHeaderField("hello"));
打印输出heiheihei
Servlet API下载文件
//强制浏览器弹出下载框
resp.setHeader("Content-Disposition", "attachment;filename=hehe.jpg");
FileInputStream fileInputStream = new FileInputStream("E:/git_tmp/servletOutputStreamTest/notitle.png");
StreamUtils.copy(fileInputStream, resp.getOutputStream());
thymeleaf模板。。。包含js。。。使用了if(a && b) 然后 && 不能通过模板引擎的解析。。。
//
gradle安装jar或者war到maven的本地仓库
想要安装gradle模块到maven本地仓库。
需要先定义好artifactId
def artifactId = "gradle_nexus"
再在build.gradle的配置文件中增加如下配置
apply plugin: 'maven'
最后加上
install {
repositories.mavenInstaller {
pom.version = "$project.version"
pom.artifactId = "$artifactId"
pom.groupId = "$project.group"
}
}
mysql 备份命令
mysqldump -uroot-p123456 test -l -F > E:/backUp.sql
mysqldump远程备份
F:/mysql/mysql-5.6.21-winx64/mysql-5.6.21-winx64/bin/mysqldump.exe by2017 --result-file=E:\backup\aaa.sql --user=qcs_java --password=qcs_2017 --host=127.0.97.48 --port=1521 --lock-tables=false
tomcat自己实现防盗链
package org.huluo.filter;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@webfilter(urlPatterns = "/*")
public class RefererFilter implements Filter {
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("过滤器初始化");
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
if (request instanceof HttpServletRequest) {
System.out.println(((HttpServletRequest) request).getHeader("Referer"));
//如果请求的来源是 http://localhost:63342开头的,则让其从tomcat上加载图片资源
if (((HttpServletRequest) request).getHeader("Referer") != null && ((HttpServletRequest) request).getHeader("Referer").startsWith("http://localhost:63342")) {
chain.doFilter(request, response);
} else {//如果不是则让其无法加载图片
System.out.println("不让过得到图片");
if (response instanceof HttpServletResponse) {
((HttpServletResponse) response).setStatus(403,"不让加载图片");
}
}
}
}
public void destroy() {
System.out.println("过滤器销毁");
}
}
MySQL安装配置文件
[mysql]
设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
log-bin=mysql-bin
#设置3306端口
port = 3306
设置mysql的安装目录
basedir=F:\mysql\mysql-5.6.21-winx64\mysql-5.6.21-winx64
设置mysql数据库的数据的存放目录
datadir=F:\mysql\mysql-5.6.21-winx64\mysql-5.6.21-winx64\data
允许最大连接数
max_connections=200
服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
maven项目将源码打进一个jar包
mvn source:jar
gradle上传jar包到nexus私服上
//上传到nexus
uploadArchives {
repositories {
mavenDeployer {
repository(url: "http://172.16.8.104:8081/nexus/content/repositories/hostedrepo/") {
authentication(userName: "admin", password: "admin123")
}
pom.version = "$project.version"
pom.artifactId = "$artifactId"
pom.groupId = "$project.group"
}
}
}
将本地jar包加入到Maven本地仓库
因为有些jar包在Maven**仓库不存在,比如sqljdbc.jar在Maven**仓库中找不到
那么我们就需要额外下载所需jar包然后添加到本地仓库
首先当然是配置好Maven环境了
然后在下载的jar包下执行
mvn install:install-file -Dfile=sqljdbc4.jar -DgroupId=com.microsoft.sqlserver -DartifactId=sqljdbc4 -Dversion=4.0 -Dpackaging=jar
com.microsoft.sqlserver
sqljdbc4
4.0
mysql从远程服务器上备份库的备份文件
例子: mysqldump -h 192.168.2.252 -uremote_user -pby_2017 test --default-character-set=gbk --opt -Q -R --skip-lock-tables>E:/backup.sql
当jenkins将打好的war包部署到远程tomcat上的时候,遇到没有权限的问题
当jenkins将打好的war包部署到远程tomcat上的时候,遇到没有权限,并且不知道有哪些权限和角色的时候。应该在conf/tomcat-users.xml文件加入如下内容
Java8分组 stream
package com.by.interfaces;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
class Student {
public String name = "Mr.Hu";
public String home = "home";
public String age = "22";
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getHome() {
return home;
}
public void setHome(String home) {
this.home = home;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
public class Main {
public static void main(String[] args) {
Student s1 = new Student();
Student s2 = new Student();
Student s3 = new Student();
Student s4 = new Student();
s2.name = "lisi";
s2.home = "上海";
s3.name = "wangwu";
s3.home = "北京";
s4.name = "Mr.Luo";
s4.home = "home";
List<Student> list = new ArrayList<>();
list.add(s1);
list.add(s2);
list.add(s3);
list.add(s4);
Map<String, List<Student>> result = list.stream().collect(Collectors.groupingBy(Student::getHome));
result.keySet().stream().forEach(s -> {
result.get(s).forEach(student -> System.out.println(student.getName()));
System.out.println("都是一个地方的");
});
}
}
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.