nginx简易配置访问

工作中需要简易配置nginx一个对外的访问地址。

1修改配置文件
2校验配置是否正确
3启动或重启nginx服务

vim ngnix-xx/conf/nginx.conf

server {
	listen       6100 ssl;
	server_name  localhost;
	ssl_certificate      key/server.crt;
	ssl_certificate_key  key/server.key;

    #charset koi8-r;
    #access_log  logs/host.access.log  main;

    location / {
        return 404;
    }
	
    location /smzk/home {#路径反向代理-对外接口路径
        proxy_pass  http://127.0.0.1:45500;#[对外访问端口]
    }
}

检验是否有配置错误sh nginx-xx/sbin/nginx -t 然后重启sh nginx-xx/sbin/nginx -s reload

备注:启动命令sh /nginx-xx/sbin/nginx,查看进程cat nginx.pid扩展阅读友情链接huxinmin

BadRequest 400 Miss request header springboot

接口调用出现下面的异常信息,如下所示:

BadRequest 400 Miss request header

我们查看控制台,异常信息如下:

org.springframework.web.bind.ServletRequestBindingException: Missing request header 'Authorization' for method parameter of type String...

与笔者上篇文章说法一致

我们将捕获的异常添加至注解中ServletRequestBindingException,当然你也可以直接写成Exception,捕获所有的异常。具体示例如下所示:

@ResponseBody
@ResponseStatus(HttpStatus.OK)
@ExceptionHandler({
        HttpMessageNotReadableException.class,
        ServletRequestBindingException.class})
public Map<String, Object> messageNotReadable(Exception exception, HttpServletResponse response) {
    LOGGER.error("请求参数不匹配。", exception);
    Map<String, Object> map = new HashMap<>();
    map.put("msg", "参数校验失败");
    map.put("code", -1);
    return map;
}

备注:可以在注解处一直追加要处理的异常,英文逗号隔开。

BadRequest 400 JSON parse请求失败

使用springboot,前端请求json数据,当数据类型不一致时会出现

BadRequest 400, JSON转换失败...

我们如何处理这类型错误呢?给前端一个统一的反馈信息;

操作:在编写的controller里面增加如下代码:

@ResponseBody
@ResponseStatus(HttpStatus.OK)
@ExceptionHandler(HttpMessageNotReadableException.class)
public Map<String, Object> messageNotReadable(HttpMessageNotReadableException exception, HttpServletResponse response) {
    LOGGER.error("请求参数不匹配。", exception);
    Map<String, Object> map = new HashMap<>();
    map.put("desc", "参数校验失败");
    map.put("code", 2);
    map.put("timestamp", System.currentTimeMillis());
    return map;
}

@ResponseStatus注解是返回给客户端的状态,OK200

MySQLddl失败Waiting for table metadata lock

简介:需要对表字段修改,结果navicat却死了,让其他人操作,也是。找同事询问,搞定了。

kill了id也不行,查看事务;

information_schema.innodb_trx 表中查看当前未提交的事务
select trx_state, trx_started, trx_mysql_thread_id, trx_query from information_schema.innodb_trx\G
发现有两条事务存在,kill即可,搞定。

说明:

备注:
本次命令

1 show processlist;  show processlist\G;
2 kill 50355【ID】;
3 select trx_state, trx_started, trx_mysql_thread_id, trx_query from information_schema.innodb_trx\G

springboot-mybatis

build.gradle增加依赖

dependencies{
    compile project(':smart-platform-data:smart-platform-data-api')
    compile('org.springframework.cloud:spring-cloud-starter-netflix-eureka-client') {
        exclude(group: 'com.google.code.gson')
    }
    compile('org.mybatis.spring.boot:mybatis-spring-boot-starter:1.3.2')
    compile('org.springframework.boot:spring-boot-starter-web')
    runtime('mysql:mysql-connector-java:5.1.46')
}

application.yml配置数据库连接

spring:
  datasource:
    url: "jdbc:mysql://127.0.0.1:3306/mydb?useSSL=false&useUnicode=true&characterEncoding=utf-8"
    username: "root"
    password: "root"
    driver-class-name: "com.mysql.jdbc.Driver"

DataSourceApplication.java启动扫描dao,避免每个dao上@Mapper

@SpringBootApplication
@EnableEurekaClient
@MapperScan("com.data.mapper")
public class DataSourceApplication {
    public static void main(String[] args) {
        SpringApplication.run(DataSourceApplication.class, args);
    }
}

 

增删改查 继续阅读springboot-mybatis

常用数据库表字段操作

1.增加字段:
ALTER TABLE t_engineer_task ADD COLUMN transfer_comment varchar(2048)
DEFAULT NULL COMMENT '转售后说明' after solution_status;

2.删除字段:
ALTER TABLE t_manager_task DROP aftersale_approve;

3.修改字段及注释:
ALTER TABLE b_document MODIFY COLUMN document_type char(1) DEFAULT NULL COMMENT'文档类型:0解决方案,1技术方案,2其他';

4.修改字段名称:
ALTER TABLE t_engineer_task CHANGE is_approve_comment approve_comment varchar(1024) DEFAULT NULL COMMENT '审批意见';

5.清空表数据:
TRUNCATE TABLE t_vbox