zoukankan      html  css  js  c++  java
  • 周记 2019.3.25~2019.3.31

    1. 上传文件报错:The field file exceeds its maximum permitted size of 1048576 bytes

        SpringBoot做文件上传时出现了The field file exceeds its maximum permitted size of 1048576 bytes.错误,显示文件的大小超出了允许的范围。查看了官方文档,原来Spring Boot工程嵌入的tomcat限制了请求的文件大小

         文档说明表示,每个文件的配置最大为1Mb,单次请求的文件的总数不能大于10Mb。

         解决方法如下:

         方法一、在application.properties添加配置项

    # Single file max size  即单个文件大小
    multipart.maxFileSize=50Mb
    # All files max size      即总上传的数据大小
    multipart.maxRequestSize=50Mb

        方法二、在启动类中添加配置Bean

    import javax.servlet.MultipartConfigElement;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.boot.web.servlet.MultipartConfigFactory;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    
    @Configuration
    @SpringBootApplication
    public class App 
    {
        public static void main( String[] args ) {
            SpringApplication.run(App.class, args);
        }
        
        /**  
         * 文件上传配置  
         * @return  
         */  
        @Bean  
        public MultipartConfigElement multipartConfigElement() {  
            MultipartConfigFactory factory = new MultipartConfigFactory();  
            //单个文件最大  
            factory.setMaxFileSize("20480KB");   
            /// 设置总上传数据总大小  
            factory.setMaxRequestSize("204800KB");  
            
            return factory.createMultipartConfig();  
        }  
    }
    View Code

    在上述两种方法中,设置大小时,Long,Kb,MB均可!MultipartConfigFactory类中的转换规则如下:

    private long parseSize(String size) {
            Assert.hasLength(size, "Size must not be empty");
            
            size = size.toUpperCase();
            return size.endsWith("KB")?Long.valueOf(size.substring(0, size.length() - 2)).longValue() * 1024L:(size.endsWith("MB")?Long.valueOf(size.substring(0, size.length() - 2)).longValue() * 1024L * 1024L:Long.valueOf(size).longValue());
        }
    View Code

    参考:https://blog.csdn.net/qq_29229567/article/details/84939996

              https://blog.csdn.net/awmw74520/article/details/70230591

    2. springboot maven 多模块 jenkins 单独打包子项目: https://blog.csdn.net/u011662047/article/details/85116163

        使用maven warpath插件合并多module的war包:https://www.yeetrack.com/?p=899

    3. intellij idea 快捷键汇总:https://github.com/judasn/IntelliJ-IDEA-Tutorial/blob/master/keymap-introduce.md#ctrl

    4. catalina.home和catalina.base 的区别:catalina.home和catalina.base这两个属性仅在你需要安装多个Tomcat实例而不想安装多个软件备份的时候使用,这样能节省磁盘空间。

        catalina.home指向公用信息的位置,就是bin和lib的父目录。
        catalina.base指向每个Tomcat目录私有信息的位置,就是conf、logs、temp、webapps和work的父目录。

        参见:https://blog.csdn.net/lantian0802/article/details/8643627

    5. xshell 使用pem文件登录:新建会话属性-->连接-->用户身份验证-->方法(Public Key)-->浏览(选择pem文件)

        参见:https://blog.csdn.net/gsying1474/article/details/50158817

    6. 使用@ConfigurationProperties,它可以把同类的配置信息自动封装成实体类:

         我们可以定义一个实体类在装载配置文件信息:

    @Component
    @ConfigurationProperties(prefix="connection")
    public class ConnectionSettings {
    
        private String username;
        private String remoteAddress;
        private String password ;
    
        public String getUsername() {
            return username;
        }
        public void setUsername(String username) {
            this.username = username;
        }
        public String getRemoteAddress() {
            return remoteAddress;
        }
        public void setRemoteAddress(String remoteAddress) {
            this.remoteAddress = remoteAddress;
        }
        public String getPassword() {
            return password;
        }
        public void setPassword(String password) {
            this.password = password;
        }
    
    }
    View Code

         我们还可以把@ConfigurationProperties还可以直接定义在@bean的注解上,这是bean实体类就不用@Component和@ConfigurationProperties了

          

    @SpringBootApplication
    public class DemoApplication{
    
        //...
    
        @Bean
        @ConfigurationProperties(prefix = "connection")
        public ConnectionSettings connectionSettings(){
            return new ConnectionSettings();
    
        }
    
        public static void main(String[] args) {
            SpringApplication.run(DemoApplication.class, args);
        }
    }
    View Code

         参见:https://blog.csdn.net/yingxiake/article/details/51263071

    7. 要替换某一个字段中的部分内容,可以用update 语句和REPLACE方法,结构如下: 

    UPDATE 表名 SET 字段名= REPLACE( 替换前的字段值, '替换前关键字', '替换后关键字' ) WHERE 字段名 REGEXP "替换前的字段值"; 

    example:

    替换订单中用户手机号前缀155改为170

    UPDATE order SET mobile= REPLACE( mobile, 155, 170 ) ; 

    参见:https://blog.csdn.net/walter_chan/article/details/50339415

    8. 子查询必须有别名 

    9. 大数据量更新,最好使用索引,没有索引,新建索引

  • 相关阅读:
    Jmeter的几种参数化方式
    selenium实现原理
    python问题
    跨域问题的解决方案
    jquery的ajax的语法
    给JavaScript 对象添加方法
    循环遍历对象的属性
    Function专题 以及js的预解析理解
    如何理解javascript中类和对象这两个概念?
    封装原生ajax
  • 原文地址:https://www.cnblogs.com/Jtianlin/p/10601486.html
Copyright © 2011-2022 走看看