Git Product home page Git Product logo

codesnippet's Introduction

这个仓库用于存放自己的代码片段

codesnippet's People

Contributors

hu123 avatar

Watchers

James Cloos avatar  avatar

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管理的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();
}

}

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);

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();
default

现在我们这样写请求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());

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"
}
}

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

将本地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

参考地址
http://blog.csdn.net/beyondlpf/article/details/8592089

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 photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.