springboot的java打印票据

Java打印的几个步骤

  • 1构建springboot框架
  • 2引入log日志
  • 3构建java打印xml文件
  • 4解析xml配置文件
  • 5java打印

由于需要,现在要实现一个java打印的程序。我们开始第一步构建springboot项目。

第一步

打开idea,new 一个Project,选择Spring initializr 初始化一个springboot项目。在pom文件中按下alt + insert 选择Dependency使用idea的引入maven依赖。如下:

        <!--基础依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <!--httpClient连接-->
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
        </dependency>
        <!--gogle的Zxing生成二维码-->
        <!-- https://mvnrepository.com/artifact/com.google.zxing/core -->
        <dependency>
            <groupId>com.google.zxing</groupId>
            <artifactId>core</artifactId>
            <version>3.3.3</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.google.zxing/javase -->
        <dependency>
            <groupId>com.google.zxing</groupId>
            <artifactId>javase</artifactId>
            <version>3.3.3</version>
        </dependency>
    <!--判断非空等的工具依赖-->
        <dependency>
            <groupId>me.javy</groupId>
            <artifactId>javy-helper</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!--使用pojo解析xml文件所用-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.20</version>
        </dependency>

配置httpClient

1.httpClient连接可以远程访问服务器,获取数据,有时需要。所以这里也配一下。下面我们进行httpClient配置。在config包下建一个httpClient和httpCLientService,一个是构建对象一个是连接服务。
在properties中写入httpclient的基础配置:

#http配置服务
#最大连接数
http.maxTotal = 100
#并发数
http.defaultMaxPerRoute = 20
#创建连接的最长时间
http.connectTimeout=1000
#从连接池中获取到连接的最长时间
http.connectionRequestTimeout=500
#数据传输的最长时间
http.socketTimeout=10000
#提交请求前测试连接是否可用
http.staleConnectionCheckEnabled=true

2.在httpClient往容器中注入Bean属性,采用注解@Value来实现如下:

@Configuration
public class HttpClient {

    @Value("${http.maxTotal:1}")
    private Integer maxTotal;

    @Value("${http.defaultMaxPerRoute:1}")
    private Integer defaultMaxPerRoute;

    @Value("${http.connectTimeout:1}")
    private Integer connectTimeout;

    @Value("${http.connectionRequestTimeout:1}")
    private Integer connectionRequestTimeout;

    @Value("${http.socketTimeout:1}")
    private Integer socketTimeout;

    @Value("${http.staleConnectionCheckEnabled:true}")
    private boolean staleConnectionCheckEnabled;
}
  • 1.下面我们首先实列化一个连接池管理器,设置最大连接数,并发连接数。
     @Bean(name = "httpClientConnectionManager")
    public PoolingHttpClientConnectionManager getHttpClientConnectionManager(){
        PoolingHttpClientConnectionManager httpClientConnectionManager = new PoolingHttpClientConnectionManager();
        //最大连接数
        httpClientConnectionManager.setMaxTotal(maxTotal);
        //并发数
        httpClientConnectionManager.setDefaultMaxPerRoute(defaultMaxPerRoute);
        return httpClientConnectionManager;
    }
  • 2.实列化连接池,设置连接池管理器。我们需要用到spring的@Qualifier,其意为合格者,用于区分注解实例,参数名为我们的连接池管理器注解名称。
 @Bean(name = "httpClientBuilder")
    public HttpClientBuilder getHttpClientBuilder(@Qualifier("httpClientConnectionManager")PoolingHttpClientConnectionManager httpClientConnectionManager){

        //HttpClientBuilder中的构造方法被protected修饰,所以这里不能直接使用new来实例化一个HttpClientBuilder,可以使用HttpClientBuilder提供的静态方法create()来获取HttpClientBuilder对象
        HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();

        httpClientBuilder.setConnectionManager(httpClientConnectionManager);

        return httpClientBuilder;
    }

  • 3.注入连接池,获取client对象
    @Bean
    public CloseableHttpClient getCloseableHttpClient(@Qualifier("httpClientBuilder") HttpClientBuilder httpClientBuilder){
        return httpClientBuilder.build();
    }
  • 4.Builder是requestConfig中的一个内部类,通过requestConfig的custom方法获取builder的对象,设置builder的连接信息。
    @Bean(name = "builder")
    public RequestConfig.Builder getBuilder(){
        RequestConfig.Builder builder = RequestConfig.custom();
        return builder.setConnectTimeout(connectTimeout)//创建连接的最长时间
                .setConnectionRequestTimeout(connectionRequestTimeout)//从连接池中获取的连接最长时间
                .setSocketTimeout(socketTimeout)//数据传输的最长时间
                .setStaleConnectionCheckEnabled(staleConnectionCheckEnabled);//提交请求前测试连接是否可用
    }
  • 5.用builder构建一个requestConfig对象
@Bean
    public RequestConfig getRequestConfig(@Qualifier("builder") RequestConfig.Builder builder){
        return builder.build();
    }

到此httpclient基础信息初始化配置完成。

原文地址:https://www.cnblogs.com/Choleen/p/12571623.html

时间: 2024-10-17 04:11:23

springboot的java打印票据的相关文章

SpringBoot的java打印票据-3

配置打印xml文件并解析 打印东西,先设置纸张大小,各种参数.若把数字直接填写到打印过程,之后的更改比较麻烦,这里配置一个xml文件,所有的参数都从这里取出打印. 1.构建printSettings.xml文件,放置于resources中. <print> <!-- 打印机设置 --> <choosePrint>3</choosePrint> <!-- 打印任务名称 --> <printName>PDF</printName&g

Java打印整数的二进制表示(代码与解析)

Java打印整数的二进制表示(代码与解析) int a=-99; for(int i=0;i<32;i++){ int t=(a & 0x80000000>>>i)>>>(31-i); System.out.print(t); } 拆分一下这段代码,要理解这个移位输出的问题还需要理解的以下内容:* 0x80000000是数的十六进制表示,转成二进制表示为10000000000000000000000000000000* 运算的优先级,移位运算高于逻辑运算,

java 打印流PrintWriter基本操作

import java.io.*; public class PrintDemo { public static void main(String[] args) { PrintWriter writer=null; writer=new PrintWriter(System.out); String str=new String("Hello cjc!!!"); writer.print(str); writer.close(); try { writer=new PrintWrit

.net 调用小票打印机 打印票据

public class PrintInvoice     { #region 01.获得打印机1获得吧台打印机2获得后厨打印机 /// <summary> /// 获得打印机1获得吧台打印机2获得后厨打印机 /// </summary> public TcpClient GetPrint(int n = 1) { var client = new System.Net.Sockets.TcpClient(); var bll = new PrintAndPlaceBll(); v

java打印正金字塔,倒金字塔和“水影”金字塔

java打印正金字塔,倒金字塔和"水影"金字塔 --------原创文章,若要转载,请注明出处 小小少年 闲来无事,想起自己初学java的时候做的经典的无非就是打印出一些有意思的图形,心血来潮自己就写了这么一个打印金字塔的demo,自己回顾一下当初的感受,同时也 分享给初学java的同道中人,一起来培养编程的兴趣<(^-^)>. 金字塔图案 1,问题分析 我们都知道,打印输出的时候,都是从最左端输出,而这里,第一个星号是在中间.这实际是因为星号之前有很多空格.当我们使用问号

WPF打印票据

最近工作的内容是有关于WPF的,整体开发没有什么难度,主要是在打印上因为没有任何经验,犯了一些难,不过还好,解决起来也不是很费劲. WPF打印票据或者是打印普通纸张区别不大,只是说打印票据要把需要打的内容摆放好位置,搞定缩放比例,就可以放入票据直接打印了. 那么关键点就是3个: 1.使用WPF提供的什么类.什么方法来执行打印 2.如何摆放位置 3.如何搞定缩放比例 1.使用WPF提供的什么类.什么方法来执行打印 这个问题很容易解决,搜索下WPF打印或WPF Print,就能找到示例代码. 那么我

Java 打印金字塔 or 打印带数字的金字塔 (Java 学习中的小记录)

Java 打印金字塔 or 打印带数字的金字塔 (Java 学习中的小记录) 作者:王可利(Star·星星) 效果图: 代码如下: 1 class Star8 2 { 3 public static void main(String[] args) 4 { 5 /* 空格 6 * 1 2*i-1 3 4-1 4-i 7 *** 3 2 4-2 8 ***** 5 1 4-3 9 ******* 7 0 4-4 10 */ 11 //第一层循环控制的是行数 12 for(int i = 1;i<=

关于这两天研究Java打印pdf方法的记录

这两天在研究Java调用打印机打印PDF文件的方法,学到了不少东西,特别来记录一下. 关于Java打印网上最多的而且也是Java正统的打印方法就是使用PrintService,一套比較标准的打印代码例如以下: public class PrintDemo { public static void main(String[] args) { JFileChooser fileChooser = new JFileChooser(); // 创建打印作业 int state = fileChoose

用Java打印乘法口诀表

用Java打印乘法口诀表: public class MultiplicationTable{ public static void main(String[] args){ for(int i = 1; i < 10; i++){ for(int j = 1; j <= i; j++){ System.out.print(j + "*" + i + "=" + i*j + " "); } System.out.print("