JAVA Web开发小记

平常总会遇到各种奇奇怪怪的问题,这里做一下汇总记录,给自己以后需要时方便查阅。

1.从Git上导入Maven项目到Eclipse,一般工程只有src和pom.xml文件,这时项目在Eclipse中是以文件夹的形式存在的,想要将其识别为maven项目,就需要操作以下几步:

     1、右键项目->Configure->Convert to Maven Project

    2、如果到这一步项目目录已经完整了,那恭喜你,已经ok了,我当时还是不行,所以还得再操作一步:右键工程->Properties->Project Facets,这时候这里是没有正常应该出现的配置jdk版本等等信息的内容的,只有一句说明,以及一个带下划线可点击的按钮,点一下这个按钮就ok了。(由于我是过后再做记录的,所以没截图。)

2.项目如果有用到私服的版本库,需要在maven的setting.xml中配置<server><mirrors>两个标签配上相应内容,另外需要配置<profiles>标签下配置<repositories>和<pluginRepositories>,这样配的话是全局都使用私服,如果想针对单个项目,则不需要在setting配这两个属性,而是在项目的pom文件配置。

3.工作中涉及到需要设计数据库表的时候,如果没有丰富的数据库表设计经验,可以优先从两方面考虑:通用性和隔离性。

    通用性指的是表的信息以可以服务更多需求为准,尽量减少跟特定需求强相关的内容。

    隔离性指的是和业务逻辑隔离,让表存储的内容尽量简单,将业务相关的数据尽量在代码去计算。

4.lombok,一个针对实体类提供注解方式减少代码量的开源框架,结合jpa使用,可极大的简化实体类的代码。

5.springboot使用定时任务,需在启动类注解@EnableScheduling,然后新建定时任务类,类名加上@Component,定时方法加上@Scheduled(cron="")即可。

6.springboot中请求第三方接口,可以使用RestTemplate。

7.SpringDataJpa,可使用@JoinColumn作为外键约束和连表查询,@lastmodifieddate,可以自动在修改数据时,同时更新修改时间,需要搭配@EnableJpaAuditing(在启动类),以及@EntityListeners(AuditingEntityListeners.class) (在实体类)使用。

8.Jpa默认提供了查全表、根据主键查、删、改、增等基本操作的方法,另外针对复杂的条件,提供了两种方式,一种是以自定义方法名来查询,如findByParamoneAndParamtwo(paramone,paramtwo),另一种是在方法上加@Query(sql语句)

9.springboot的配置文件application.yml,可以配置多个profiles,用---分开,最上面配置默认的profiles,后面的profiles会覆盖默认的配置,如想要运行哪个profiles环境,在Eclipse里启动springboot服务时,选择Run As->Run Configurations,在Arguments标签中的Program argument中输入:--spring.peofiles.active=profiles的名称,就ok了。

10.Windows系统使用docker有N多坑,经历了一次晚上加班和一个上午的时间,终于搞定了,一个个记录下来吧。

    1.首先,安装docker。虽说win10比较支持docker了,可以直接安装Docker,但是要打开 应用->程序和功能->启用或关闭Windows功能->打开Hyper-V,但是在这里我就遇到第一个坑了,可能是个人电脑的原因,无论重启几次,都无法打开hyper-v,所以我索性就按老办法,从(http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/)下载DeckerToolBox,安装后会有一个QuickStart图标和一个OracleVM的图标,还有另一个没怎么用到的,先不管。

    2.点QuickStart,启动不了?完全没反应?这是安装好之后的第一个坑,这是因为我已经安装过Git了,所以这个快捷方式不知道我的Git路径导致启动不了,右键这个图标->属性->目标,目标这个框里面的内容,是使用git的bash.exe来启动docker,修改下git的路径就可以了。

    3.启动之后会出现一个类似Linux系统的窗口,第一次启动会有点慢,看打印的信息,如果看到以下界面,那恭喜你,已经启动成功了


如果在看到这个内容之前,看到了“Look like something went wrong......any key”这样的内容,那就又是一个坑了,网上说这个问题是系统没有开启虚拟化技术,这个问题我一开始是没遇到的,然后一直搞不定docker build,就装了一个旧版本的toolBox,才遇到了这个问题,我怀疑是因为旧版本和win10的兼容问题,后来我又装回最新的toolBox就没这问题了。

    4.启动成功之后,我想要login,因为镜像需要上传到云端,这时遇到个问题,就是docker的其他命令都可以正常使用,但是docker login的时候,无法登陆,提示TTY什么的,然而我又尝试下用docker login -u *** -p ***就顺利login success了。

    5.好了,安装好了,启动成功了,登陆也成功了,那是不是就没问题了呢,不不不,坑还很多。

    首先说下我们的项目,我们老大写好了总工程的pom文件,里面规定了maven的build规则,用了dockerfile-maven-plugin,所以我这个子项目里面只需要一个DockerFile文件,写了一些基本信息就行了,按配置文件写好的,在maven install的时候,会将打包好的工程jar包使用docker上传到云端,结果在maven install的时候遇到各种问题。

    第一个就是HttpHostConnectException: Connect to localhost:2375,各种懵逼,我工程里面又没有配这个端口,那可以理解这个是docker默认的端口吧,中间各种坎坷,找了网上很多关于这个问题的,很多讲得不是很清楚,其实归根到底就是一个问题,Windows对docker的支持度还不够,所以这里需要配置环境变量,增加一个DOCKER_HOSE环境变量,值是tcp://192.168.99.100:2376,这个ip是Docker那个QuickStart创建的默认的虚拟机所在的ip,可以改,改的话环境变量也要对应改,端口则是在一般默认2375或2376,2375好像是之前旧的,要确定的话,可以使用Crt或XShell这些工具,连上本地这个虚拟机(即前面这个192.168.99.100),然后使用netstat -tunlp查看端口。配好环境变量之后,再执行maven install,就有不一样的报错了。

    这次的报错信息是

com.spotify.docker.client.shaded.javax.ws.rs.ProcessingException: org.apache.http.client.ClientProtocolException

The server failed to respond with a valid HTTP response

这个坑也困扰了好久,最终解决方案是在这里找到的https://stackoverflow.com/questions/34815411/docker-maven-plugin-clientprotocolexception-windows-10-using-docker-toolbox

就是在C:\Users\admin\.docker\machine这个路径下,原本是只有一个machine文件夹,是对应创建的虚拟机的,在执行过前面的步骤之后,这个路径下就出现了cache、certs这两个文件夹,将certs里面的文件,拷贝到C:\Users\admin\.docker\路径下就可以了。

这时候再执行maven install就可以build成功,并且上传到云端了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值