@JsonFormat

  • 物件<->JSON 格式化互轉
  • 格式前端到後端、格式後端到前端
  • 資料交換如果以JSON交換,用此就可以了

@DateTimeFormat

  • spring mvc 格式前端到後端資料
  • 適用在form mapping

 

JSON傳值

{"testTimeA": "2020/08/26 18:42:12"}

後台設定物件

@lombok.Data
@ApiModel
public class testReq {

  @ApiModelProperty
  @JsonFormat(pattern = "yyyy/MM/dd HH:mm:ss", shape = JsonFormat.Shape.STRING, timezone = "GMT+8")
  private Date testTime;
}

==> 
back-end value:  testTime=Wed Aug 26 18:42:12 CST 2020

文章標籤

咪卡恰比 發表在 痞客邦 留言(0) 人氣()

table 複合主鍵 同時使用 JAXB annotation設定

  • 主pojo set @Id@IdClass(xxx.class)、並設定@XmlElement
/**
 *主檔
 */
@Entity
@lombok.Data
@lombok.ToString
@Table(name="STORE_INFO")
@XmlAccessorType(XmlAccessType.FIELD)
@IdClass(StoreInfoPK.class)
public class StoreInfo implements Serializable {

  private static final long serialVersionUID = 1L;
  
  @Id
  @XmlElement(name = "StoreId")
  private String storeId;
  
  @Id
  @XmlElement(name = "CreateTime")
  private Date createTime;

  /**
   * 店鋪店名
   */
  @XmlElement(name = "StoreName")
  @Column(name = "STORE_NAME")
  private String storeName;

  public SupStoreInfo() {}

}

table 複合主鍵 並用 JAXB annotation設定

  • PK pojo set @Column
/**
 *PK
 */

@lombok.Data
@lombok.ToString
public class StoreInfoPK implements Serializable {

  private static final long serialVersionUID = 1L;

    @Column(name="STORE_ID")
    private String storeId;

    @Column(name="CREATE_TIME")
    @Temporal(TemporalType.DATE)
    private Date createTime;
    
    public StoreInfoPK() {
    }
}

文章標籤

咪卡恰比 發表在 痞客邦 留言(0) 人氣()

 @Test
 public void tryremove() throws Exception {
    List<String> list = new ArrayList<String>();
    list.add("9");list.add("888");list.add("846");list.add("654");list.add("844");
    System.out.println("list: " + StringUtils.join(list, ","));
    
    if(CollectionUtils.isNotEmpty(list)){
      Iterator<String> it = list.iterator();
      while(it.hasNext()){
        String temp = it.next();
        System.out.println(temp);
        
        if(temp.startsWith("84")) {
          it.remove();
        }
      }
      
      System.out.println("list: " + StringUtils.join(list, ","));
    }
  }

//console:
list: 9,888,846,654,844
9
888
846
654
844
list: 9,888,654

文章標籤

咪卡恰比 發表在 痞客邦 留言(0) 人氣()

AMAZON S3

使用官方SDK進行資料交換,

先安裝必要資料

POM.XML

<!-- https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk-s3 -->
<dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk-s3</artifactId>
        <version>1.11.767</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk-kms -->
<dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk-kms</artifactId>
        <version>1.11.767</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk-core -->
<dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk-core</artifactId>
        <version>1.11.767</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.amazonaws/jmespath-java -->
<dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>jmespath-java</artifactId>
        <version>1.11.767</version>
</dependency>

上傳物件 

String access = "access"; //ex: AKIA3PGEPUAAAAAABBBB
String secret = "secret"; //ex: W3pIE45y64DAjeRXyBUQAAAAAAAAAABBBBBBBBBB
Regions regions = Regions.AP_EAST_1;
String bucket = "bucket";
String fileName = "test/data.jpg"; //檔案(包含資料夾)

//憑證
AWSCredentials creds = new BasicAWSCredentials(access, secret); 

//建立連線
AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
                .withRegion(regions)
                .withCredentials(new AWSStaticCredentialsProvider(creds))
                .build();

//資料設定
PutObjectRequest request = new PutObjectRequest(bucket, fileName, new File("C:\\Users\\aaa\\Desktop\\logo.jpg"));
//Metadata
ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentType("image/jpg");
request.setMetadata(metadata);
//ACL
//https://docs.aws.amazon.com/zh_tw/AmazonS3/latest/dev/acl-overview.html 
request.setCannedAcl(CannedAccessControlList.PublicRead);

//開始傳送
s3Client.putObject(request);

取得檔案路徑

String access = "access"; //ex: AKIA3PGEPUAAAAAABBBB
String secret = "secret"; //ex: W3pIE45y64DAjeRXyBUQAAAAAAAAAABBBBBBBBBB
Regions regions = Regions.AP_EAST_1;
String bucket = "bucket";
String fileName = "test/data.jpg"; //檔案(包含資料夾)

//憑證
AWSCredentials creds = new BasicAWSCredentials(access, secret); 

//建立連線
AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
                .withRegion(regions)
                .withCredentials(new AWSStaticCredentialsProvider(creds))
                .build();

//s3路徑
String fileUrl = s3Client.getUrl(bucket, fileName).toString();

取得物件 

文章標籤

咪卡恰比 發表在 痞客邦 留言(0) 人氣()

使用JsonProperty 定名

@JsonProperty("uid")
@ApiModelProperty(required=true, example="13690000")
private String memberId;

/* swagger-ui
{
    "uid": 13690000,
}
*/

refer:  https://github.com/springfox/springfox/issues/1289


文章標籤

咪卡恰比 發表在 痞客邦 留言(0) 人氣()

Returns an immutable collection containing only the specified object. The returned set is serializable.
/**
 * Set<T> java.util.Collections.singleton(T var0)
 * https://docs.oracle.com/javase/8/docs/api/java/util/Collections.html#singleton-T-
 */
Set<String> aa = Collections.singleton("AA");


/**
 * List<T> java.util.Collections.singletonList(T var0)
 * https://docs.oracle.com/javase/8/docs/api/java/util/Collections.html#singletonList-T-
 */
List<String> bb = Collections.singletonList("BB");


/**
 * Map<K, V> java.util.Collections.singletonMap(K var0, V var1)
 * https://docs.oracle.com/javase/8/docs/api/java/util/Collections.html#singletonMap-K-V-
 */
Map<String, String> cc = Collections.singletonMap("CCKey", "CCVal");

 

 

refer:

https://stackoverflow.com/questions/4801794/use-of-javas-collections-singletonlist
https://stackoverflow.com/questions/31599467/what-is-the-benefit-for-collections-singleton-to-return-a-set-instead-of-a-col
 


文章標籤

咪卡恰比 發表在 痞客邦 留言(0) 人氣()

org.apache.commons.lang3.exception.ExceptionUtils.ExceptionUtils.getStackTrace(Throwable)

 

ref:  https://stackoverflow.com/questions/1149703/how-can-i-convert-a-stack-trace-to-a-string


文章標籤

咪卡恰比 發表在 痞客邦 留言(0) 人氣()