JAVA项目实战过程中踩坑总结一

12 篇文章 0 订阅
2 篇文章 0 订阅

目录

一、服务器部署到linux,无法访问?

二、部署tomcat到linux服务器主要几点需要配置重点

三、 实体类注解

四、Idea常用快捷键

五、Linux从其他服务器下载负责文件到本地

六、热部署

七、接口返回空处理

八、linux清空一个文件

九、linux 系统参数设置

十、docker 

十一、java 工具开发使用爱迪尔2021

十二、JS时间自动刷新


一、服务器部署到linux,无法访问?

查看防火墙状态是否开启,如果开启,关闭防火墙。

systemctl status firewalld  查看状态

firewall-cmd --state

# 开启service firewalld start# 重启service firewalld restart# 关闭service firewalld stop

firewall-cmd --list-all 查看防火墙规则

二、部署tomcat到linux服务器主要几点需要配置重点

2.1、修改tomcat 目录下bin/catalina.sh

2.2、修改server.xml开启 关闭 端口

 

三、 实体类注解

swagger实体字段说明
@ApiModelProperty(value = "文件类型文件类型:1:生活 2:动物 3:儿童用品 4、节日祝福 6 酒类 7 表情包")
返回字段格式化
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
为空不返回
@JsonInclude(JsonInclude.Include.NON_NULL)

四、Idea常用快捷键

ctrl+shift+L 代码格式化

双击shift  搜索

五、Linux从其他服务器下载负责文件到本地

scp -r root@172.16.61.168:/usr/local/eureka  /usr/local/

六、热部署

<!-- 修改后立即生效,热部署 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
</dependencies>

七、接口返回空处理

我们先来讨论

listUser()  

这个接口,我经常看到如下实现:

public List<User> listUser(){  
    List<User> userList = userListRepostity.selectByExample(new UserExample());  
    if(CollectionUtils.isEmpty(userList)){//spring util工具类  
      return null;  
    }  
    return userList;  
}  

这段代码返回是null,从我多年的开发经验来讲,对于集合这样返回值,最好不要返回null,因为如果返回了null,会给调用者带来很多麻烦。你将会把这种调用风险交给调用者来控制。

如果调用者是一个谨慎的人,他会进行是否为null的条件判断。如果他并非谨慎,或者他是一个面向接口编程的狂热分子(当然,面向接口编程是正确的方向),他会按照自己的理解去调用接口,而不进行是否为null的条件判断,如果这样的话,是非常危险的,它很有可能出现空指针异常!

根据墨菲定律来判断: “很有可能出现的问题,在将来一定会出现!”

基于此,我们将它进行优化:

public List<User> listUser(){  
    List<User> userList = userListRepostity.selectByExample(new UserExample());  
    if(CollectionUtils.isEmpty(userList)){  
      return Lists.newArrayList();//guava类库提供的方式  
    }  
    return userList;  
}  

对于接口(List listUser()),它一定会返回List,即使没有数据,它仍然会返回List(集合中没有任何元素);

通过以上的修改,我们成功的避免了有可能发生的空指针异常,这样的写法更安全!

其他方法

public Optional<User> getOptional(Integer id){  
  return Optional.ofNullable(userRepository.selectByPrimaryKey(id));  
}  
public interface UserSearchService{  
  /**  
   * 根据用户id获取用户信息  
   * @param id 用户id  
   * @return 用户实体  
   * @exception UserNotFoundException  
   */  
  User get(@NotNull Integer id);  
  
  /**  
   * 根据用户id获取用户信息  
   * @param id 用户id  
   * @return 用户实体,此实体有可能是缺省值  
   */  
  Optional<User> getOptional(@NotNull Integer id);  
}  
public interface UserSearchService{  
  /**  
   * 根据用户id获取用户信息  
   * @param id 用户id  
   * @return 用户实体  
   * @exception UserNotFoundException  
   */  
  @CheckForNull  
  User get(@NonNull Integer id);  
  
  /**  
   * 根据用户id获取用户信息  
   * @param id 用户id  
   * @return 用户实体,此实体有可能是缺省值  
   */  
  Optional<User> getOptional(@NonNull Integer id);  
}  

八、linux清空一个文件

cat /dev/null > 文件名称

cp /dev/null  文件名称

九、linux 系统参数设置

echo $CXJG_HOST

修改环境变量

vim /etc/profile

重启生效

source /etc/profile

修改host文件

cat /etc/hosts

查询端口是否占用

netstat -anp | grep  端口
如果占用

kill -9  线程号

十、docker 

下载安装:curl -s https://get.docker.com|sh

启动:service docker start

查看是否成功:docker version

拉取镜像:docker pull   镜像名称

查询是否拉取成功:docker images

运行docker:docker run  hello-world

后台运行  docker run -d   xxx

查询帮助命令  docker  exec  --help

十一、java 工具开发使用爱迪尔2021

  1-关闭

   2-下载压缩包(需要评论说明  “”需要爱迪尔2021“”)

3-解压到桌面

4-双击ok

 5-启动

6-关闭自动更新  file-setting 

打开settings  去掉

 至此已成功

十二、JS时间自动刷新

<script>
   setInterval(time,1000) //定时器
   function time(){ //定义方法 time
      let time = new Date();  //实例化日期对象
      let year=time.getFullYear()+"年" //获取年
      let month=time.getMonth()+1+"月" //获取月
      let day=time.getDate()+"日"      //获取日
      let h=time.getHours()+':'        //获取时
      let m=time.getMinutes()+":"      //获取分
      let s=time.getSeconds()          //获取秒
      if(s<10){                        //判定秒 是否小于10秒
         s="0"+time.getSeconds()      //小于是 在其前加0 01,02,03...
      }
      if(time.getMinutes()<10){        //判定分 是否小于10分
         m="0"+time.getMinutes()+":"  //小于是 在其前加0 01,02,03...
      }
      document.getElementById("nowDate").innerHTML='当前时间:'+year+month+day+h+m+s  //显示当前时间
   }
</script>

持续关注,持续更新中。。。。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JAVA终结者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值