问题
这周遇到的问题次要是环境问题
第一个就是历史遗留问题,MySQL版本问题过后没有及时解决,过后想着就是啥时候遇到问题再说,而后在跑日志零碎的时候是没有问题的,起初在智慧社区就有问题了。其实过后是没有装MySQL的,过后装了xampp,而后用的xampp内置的MySQL服务,没方法只能从新装MySQL。
装完mysql遇到一个很离谱的问题,终端输出异样
解决完这个又发现数据库出问题
又从新批改用户名明码,从新登录解决
第二个是navicat忽然用不了了,过年之前还是能够失常应用的,而后电脑就始终没开过,过完年动工发现忽然打不开了,在尝试各种办法无奈解决后抉择了另一款软件,DBeaver
目前用起来感觉还不错,重点是收费,不必像navicat费心理破解或去找破解版
DBeaver装置应用
nginx
对于nginx在之前学thinkphp时接触过,但只是用了http server,所以对nginx齐全不晓得怎么用
什么是nginx
Nginx (engine x) 是一款轻量级的 Web 服务器 、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。
什么是反向代理?
反向代理(Reverse Proxy)形式是指以代理服务器来承受 internet 上的连贯申请,而后将申请转发给外部网络上的服务器,并将从服务器上失去的后果返回给 internet 上申请连贯的客户端,此时代理服务器对外就体现为一个反向代理服务器。
我了解的流程
而在没有nginx时的流程为
在我第一次梳理完这个流程后感觉nginx有些鸡肋
为什么不能间接拜访前台并由前台间接拜访后盾呢
为什么应用nginx
1、爱护了实在的web服务器,web服务器对外不可见,外网只能看到反向代理服务器,而反向代理服务器上并没有实在数据,因而,保障了web服务器的资源平安。
2、反向代理为根底产生了动静资源拆散以及负载平衡的形式,加重web服务器的累赘,减速了对网站访问速度
3、节约了无限的IP地址资源,企业内所有的网站共享一个在internet中注册的IP地址,这些服务器调配公有地址,采纳虚拟主机的形式对外提供服务
动静资源拆散:动静拆散是让动静网站里的动静网页依据肯定规定把不变的资源和常常变的资源辨别开来,动静资源做好了拆分当前,咱们就能够依据动态资源的特点将其做缓存操作,这就是网站动态化解决的外围思路
负载平衡:将工作调配到多个服务器上
常用命令
nginx 启动nginx -s stop 疾速敞开Nginx,可能不保留相干信息,并迅速终止web服务。nginx -s quit 安稳敞开Nginx,保留相干信息,有安顿的完结web服务。nginx -s reload 因扭转了Nginx相干配置,须要从新加载配置而重载。nginx -s reopen 从新关上日志文件。nginx -c filename 为 Nginx 指定一个配置文件,来代替缺省的。nginx -t 不运行,而仅仅测试配置文件。nginx 将查看配置文件的语法的正确性,并尝试关上配置文件中所援用到的文件。nginx -v 显示 nginx 的版本。nginx -V 显示 nginx 的版本,编译器版本和配置参数。
应用时只须要在nginx.conf中include 我的项目的nginx.conf文件即可
想理解更多nginx配置文件的信息能够参考
Nginx 繁难教程
nginx配置文件详解
@JsonView
简介
@JsonView是Jackson的一个注解,能够用来过滤序列化对象的字段属性,是你能够抉择序列化对象哪些属性,哪些过滤掉。
能够简略了解为一个过滤器,能够依据须要对实体进行进行解决,返回须要的数据,而不是整个实体
具体应用
首先在实体中建设接口
// 视图1 public interface OneView{}; // 视图2 继承视图1 public interface TwoView extends OneView{};
而后在get办法中退出注解
@JsonView(OneView.class) public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } @JsonView(OneView.class) public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @JsonView(TwoView.class) public String getRealName() { return realName; } public void setRealName(String realName) { this.realName = realName; } @JsonView(TwoView.class) public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; }
最初在controller办法中退出注解
@RestController@RequestMapping("/user")public class UserController { @GetMapping("/user1") @JsonView(OneView.class) public User queryUser1() { User user = new User(); user.setUsername("test1"); user.setPassword("123456"); user.setRealName("测试"); user.setSex("男"); return user; } @GetMapping("/user2") @JsonView(TwoView.class) public User queryUser2( String id) { User user = new User(); user.setUsername("test1"); user.setPassword("123456"); user.setRealName("测试"); user.setSex("男"); return user; }
这样在拜访两个办法时就能够失去不同的后果
拜访user1时是
user2是
然而这个用法和我的项目中有所不同
我的项目中间接将注解加到实体的成员上而不是get办法上
@ApiModelProperty("负责小区") @OneToMany(mappedBy = "propertyCompany") @JsonView(VillageJsonView.class) @Where(clause = "deleted = false") private List<Village> villages = new ArrayList<>();
通过测试,将注解加到成员或者get办法成果是一样的
开始了解的是会把所有增加注解的显示进去,没有增加注解或增加其余注解的会被过滤掉,
本人测试后发现只会过滤掉增加其余注解的,没有注解的不会过滤
总结
在环境问题上破费太多工夫,当初开始写后盾发现还是有很多货色要学