Skip to content

Commit

Permalink
添加值对象序列化的代码
Browse files Browse the repository at this point in the history
  • Loading branch information
jovezhao committed Aug 25, 2020
1 parent 63233c2 commit abe6b9c
Show file tree
Hide file tree
Showing 8 changed files with 120 additions and 62 deletions.
2 changes: 2 additions & 0 deletions nest-plus-demo/http/User.http
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,5 @@ POST {{base}}/user/create

###
POST {{base}}/user/update

###
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,6 @@ public UserDto create() {

@PostMapping("/update")
public UserDto udpate() {
UserDto userDto = null;
for (int i = 0; i < 1000; i++) {
userDto = userAppService.changeTel("tel" + i);
}
return userDto;
return userAppService.changeAddress();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
import com.zhaofujun.nest.context.model.LongIdentifier;
import com.zhaofujun.nest.demo.contract.UserChangedEventData;
import com.zhaofujun.nest.demo.contract.UserDto;
import com.zhaofujun.nest.demo.domain.Address;
import com.zhaofujun.nest.demo.domain.Point;
import com.zhaofujun.nest.demo.domain.User;
import com.zhaofujun.nest.standard.AppService;
import com.zhaofujun.nest.standard.EventBus;
Expand Down Expand Up @@ -33,4 +35,11 @@ public UserDto changeTel(String tel) {
user.changeTel(tel);
return autoMapper.map(user, UserDto.class);
}

public UserDto changeAddress() {
User user = EntityFactory.load(User.class, LongIdentifier.valueOf(100L));
Address address = new Address("address", new Point(1, 2));
user.cacheAddress(address);
return autoMapper.map(user, UserDto.class);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.zhaofujun.nest.demo.domain;

import com.zhaofujun.nest.context.model.BaseValueObject;

public class Address extends BaseValueObject {
private String name;
private Point point;

public Address(String name, Point point) {
this.name = name;
this.point = point;
}

public String getName() {
return name;
}

public Point getPoint() {
return point;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.zhaofujun.nest.demo.domain;

import com.zhaofujun.nest.context.model.BaseValueObject;

public class Point extends BaseValueObject {
private int x;
private int y;

public Point(int x, int y) {
this.x = x;
this.y = y;
}

public int getX() {
return x;
}

public int getY() {
return y;
}
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
package com.zhaofujun.nest.demo.domain;

import com.zhaofujun.nest.context.model.BaseEntity;
import com.zhaofujun.nest.context.model.BaseValueObject;
import com.zhaofujun.nest.context.model.LongIdentifier;

public abstract class User extends BaseEntity<LongIdentifier> {
private String name;
private String tel;
private Address address;

public void init(String name, String tel) {
this.name = name;
Expand All @@ -23,4 +25,10 @@ public String getTel() {
public void changeTel(String tel){
this.tel=tel;
}

public void cacheAddress(Address address){
this.address=address;
}

}

Original file line number Diff line number Diff line change
@@ -1,57 +1,57 @@
package com.zhaofujun.nest.demo.infrastructure.repositories;

import com.zhaofujun.automapper.AutoMapper;
import com.zhaofujun.nest.context.model.LongIdentifier;
import com.zhaofujun.nest.demo.domain.User;
import com.zhaofujun.nest.demo.infrastructure.repositories.dao.UserDao;
import com.zhaofujun.nest.demo.infrastructure.repositories.dao.po.UserPO;
import com.zhaofujun.nest.standard.EntityLoader;
import com.zhaofujun.nest.standard.Identifier;
import com.zhaofujun.nest.standard.Repository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class UserRepository implements Repository<User> {
@Autowired
private AutoMapper autoMapper;

@Autowired
private UserDao userDao;

@Override
public Class<User> getEntityClass() {
return User.class;
}

@Override
public User getEntityById(Identifier identifier, EntityLoader<User> entityLoader) {
LongIdentifier id = (LongIdentifier) identifier;
UserPO userPO = userDao.getOne(id.getId());
if (userPO == null) return null;
User user = entityLoader.create(identifier);
autoMapper.map(userPO, user);
return user;
}

@Override
public void insert(User user) {
// if (user.getId().getId().equals(101L)) throw new RuntimeException("发生异常");
if (user == null) return;
UserPO userPO = autoMapper.map(user, UserPO.class);
userDao.save(userPO);
}

@Override
public void update(User user) {
if (user == null) return;
UserPO userPO = autoMapper.map(user, UserPO.class);
userDao.save(userPO);
}

@Override
public void delete(User user) {
if (user != null)
userDao.deleteById(user.getId().getId());
}
}
//package com.zhaofujun.nest.demo.infrastructure.repositories;
//
//import com.zhaofujun.automapper.AutoMapper;
//import com.zhaofujun.nest.context.model.LongIdentifier;
//import com.zhaofujun.nest.demo.domain.User;
//import com.zhaofujun.nest.demo.infrastructure.repositories.dao.UserDao;
//import com.zhaofujun.nest.demo.infrastructure.repositories.dao.po.UserPO;
//import com.zhaofujun.nest.standard.EntityLoader;
//import com.zhaofujun.nest.standard.Identifier;
//import com.zhaofujun.nest.standard.Repository;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Component;
//
//@Component
//public class UserRepository implements Repository<User> {
// @Autowired
// private AutoMapper autoMapper;
//
// @Autowired
// private UserDao userDao;
//
// @Override
// public Class<User> getEntityClass() {
// return User.class;
// }
//
// @Override
// public User getEntityById(Identifier identifier, EntityLoader<User> entityLoader) {
// LongIdentifier id = (LongIdentifier) identifier;
// UserPO userPO = userDao.getOne(id.getId());
// if (userPO == null) return null;
// User user = entityLoader.create(identifier);
// autoMapper.map(userPO, user);
// return user;
// }
//
// @Override
// public void insert(User user) {
//// if (user.getId().getId().equals(101L)) throw new RuntimeException("发生异常");
// if (user == null) return;
// UserPO userPO = autoMapper.map(user, UserPO.class);
// userDao.save(userPO);
// }
//
// @Override
// public void update(User user) {
// if (user == null) return;
// UserPO userPO = autoMapper.map(user, UserPO.class);
// userDao.save(userPO);
// }
//
// @Override
// public void delete(User user) {
// if (user != null)
// userDao.deleteById(user.getId().getId());
// }
//}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.zhaofujun.nest.spring;

import com.zhaofujun.nest.NestApplication;
import com.zhaofujun.nest.cache.CacheClientFactory;
import com.zhaofujun.nest.context.event.DefaultEventBus;
import com.zhaofujun.nest.json.JsonCreator;
import com.zhaofujun.nest.standard.EventBus;
Expand Down

0 comments on commit abe6b9c

Please sign in to comment.