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>

avator

配置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;
    }

avator

  • 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基础信息初始化配置完成。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Java是一种面向对象编程语言,拥有强大的打印和网络编程功能。打印票据和使用Socket进行网络通信是Java编程中常见且重要的功能之一。 在Java打印票据,通常可以使用Java打印库中的JasperReports或iText等第三方库。这些库可以帮助开发人员快速生成、设计和打印复杂而庞大的票据,同时提供丰富的定制功能。开发人员可以通过这些库创建报表模板,并将数据源与模板连接,以生成所需的打印输出格式。 使用Java Socket进行网络通信则需要实现客户端和服务器之间的连接。开发人员可以使用Java Socket API中的socket、ServerSocket和DatagramSocket等类来实现这些连接。Socket通常用于建立TCP连接,而DatagramSocket用于建立UDP连接。 在使用Java Socket进行网络通信时,需要考虑到通信协议、消息格式、端口号等方面的细节,以确保数据的安全传输。开发人员还可以在Socket之上使用SSL/TLS协议来加密通信内容,进一步保护网络安全。 总的来说,Java打印票据和使用Socket进行网络通信方面具有强大的能力,开发人员可以利用这些功能来构建高质量、安全可靠的应用程序。 ### 回答2: Java打印票据Socket是一种将Java技术与网络通信技术相结合的应用方式。通过这种方式,可以在网络上实现打印票据的功能,具有方便、高效、安全等多种优势。 首先,Java打印票据Socket利用Java的网络编程技术,从服务器获取打印票据的信息,然后将其传输到打印机进行打印,这样可以避免了在本地进行复杂的设置和操作,从而提高了效率。 其次,Java打印票据Socket的特点是具有安全性和稳定性,它可以通过设置协议、安全认证、数据加密等方式来保护数据的安全性,同时可以通过错误处理、重连机制、超时控制等方式保证网络通信的稳定性。 最后,Java打印票据Socket是一种灵活的应用方式,可以适应各种应用环境。无论是在小型企业、零售店铺还是大型商场、展览会场,都可以通过Java打印票据Socket实现打印票据的功能。 总之,Java打印票据Socket是一种优秀的应用方式,可以提高打印效率、保证打印安全、稳定性,并适应各种应用环境的要求。 ### 回答3: Java打印票据可以通过Socket实现。首先,需要在客户端程序中创建Socket连接,连接到打印机所在的IP地址和端口号。接着,将要打印的文本内容通过Socket传输到打印机端,然后在打印机端进行解析并打印出来。 在打印机端,需要编写一个Socket服务器程序来监听客户端的连接请求,接收客户端传输的文本内容,并将文本写入到打印机的缓存中。当缓存区中的文本达到打印机的缓存大小时,打印机就会打印出文本内容。 需要注意的是,在打印票据时,需要设置打印机的一些参数,如字体大小、字体样式、对齐方式等,以保证打印结果符合要求。 在实现中,可以使用Java自带的Socket类或者第三方库如Netty来处理Socket通信和打印机驱动的编写。此外,还需要了解一些Socket编程和打印机驱动的知识,以确保程序能够正确地实现打印功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值