0%

docker 的Dockerfile

1
2
3
4
5
6
7
8
9
From centos
From openjdk:8-jdk
VOLUME /tmp
ADD *.jar app.jar
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
#ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
CMD exec java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar

docker build -t name .

  1. 记住名字后面有个点 标识DockerFile的位置

  2. 启动创建的容器用 docker start

orika 转换自定义实体类

orkia 类似 javaEE里的 beanutils 不过功能更加强大,用于po,vo,dto对象的转换。 下面的例子是使用jpa,@query自定义返回的实体,将这个实体转为domain里的vo对象。

1.首先注册,由于获得的query结果是List<Object[]>

1
2
3
4
@Query(value = "SELECT prices_is_sale,CONCAT(ROUND(COUNT(prices_is_sale)/(SELECT COUNT(prices_is_sale) FROM DataSet)*100,2),'%')" +
" FROM DataSet" +
" GROUP BY prices_is_sale",nativeQuery = true)
List<Object[]> getSoldPercentage();

​ 每条Object[] 0对应第一个字段 1对应第二个字段 以此类推,所以要注册时指定

1
2
3
mapperFactory.classMap(Object[].class, SoldPercentageVO.class)
.field("1", "percentage").field("0", "sale")
.byDefault().register();
  1. 转换代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        public PageVO<SoldPercentageVO> getSoldPercentage() {
    List<Object[]> soldPercentage = this.shoesDao.getSoldPercentage();
    // SoldPercentageVO out = (SoldPercentageVO) ConveterUtil.mapOneTowOne(soldPercentage.get(0), SoldPercentageVO.class);
    AssertUtil.AssertNotNull(soldPercentage, ShoeErrorEnum.EMPTY_SHOE);
    List<SoldPercentageVO> list = soldPercentage.stream()
    .map(data -> (SoldPercentageVO) ConveterUtil.mapOneTowOne(data, SoldPercentageVO.class))
    .collect(Collectors.toList());
    PageVO<SoldPercentageVO> voList = new PageVO<>();
    voList.setTotal(list.size());
    voList.setData(list);
    return voList;
    }