Commit 26f29bcd authored by Administrator's avatar Administrator

创建项目

parent 0d9cd283
......@@ -13,7 +13,7 @@ import java.util.Map;
/**
* Created by Administrator on 2021/8/22 0022.
*/
public class AcquirerConfigurer {
public class AcquirerPropertiesBuilder {
private Table<Class, Object, Object> bigTable = Tables.newCustomTable(Maps.newHashMap(), new Supplier() {
public Map<Object, Object> get() {
......@@ -21,11 +21,10 @@ public class AcquirerConfigurer {
}
});
public AcquirerConfiguration configure(Collection<MchChannelEntity> entities){
AcquirerConfiguration configuration = new AcquirerConfiguration();
public AcquirerPropertiesSource build(Collection<MchChannelEntity> entities){
AcquirerPropertiesSource configuration = new AcquirerPropertiesSource();
for (MchChannelEntity entity : entities) {
AcquirerProperties profile = configure(entity);
AcquirerProperties profile = build(entity);
configuration.add(profile);
}
return configuration;
......@@ -35,7 +34,7 @@ public class AcquirerConfigurer {
bigTable.clear();
}
public AcquirerProperties configure(MchChannelEntity entity) {
public AcquirerProperties build(MchChannelEntity entity) {
AcquirerProperties profile = new AcquirerProperties();
profile.setMchChanId(entity.getId());
......@@ -80,11 +79,11 @@ public class AcquirerConfigurer {
}
public class PayApp {
public AcquirerConfigurer apps(Collection<PayAppEntity> entities) {
public AcquirerPropertiesBuilder apps(Collection<PayAppEntity> entities) {
for (PayAppEntity entity : entities) {
bigTable.put(entity.getClass(), entity.getPayAppId(), entity);
}
return AcquirerConfigurer.this;
return AcquirerPropertiesBuilder.this;
}
}
}
......@@ -15,7 +15,7 @@ import java.util.Map;
/**
* Created by Administrator on 2021/8/22 0022.
*/
public class AcquirerConfiguration {
public class AcquirerPropertiesSource {
private Table<String, String, Collection<AcquirerProperties>> bigTable = Tables.newCustomTable(Maps.newHashMap()
, new Supplier() {
......
package cn.quant.baa.pay.service;
package cn.quant.baa.pay.component;
import cn.quant.baa.pay.acquirer.AcquirerProperties;
import cn.quant.baa.pay.config.DictionaryViewer;
......@@ -9,6 +9,7 @@ import cn.quant.baa.pay.model.web.MerchantChannelResponseData;
import cn.quant.spring.NotSupportedException;
import cn.quant.spring.util.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import java.util.Collection;
......@@ -19,7 +20,7 @@ import java.util.Map;
/**
* Created by Administrator on 2021/8/23 0023.
*/
@Service
@Component
public class ModelBuilder {
@Autowired
......
package cn.quant.baa.pay.config;
import cn.quant.baa.pay.acquirer.AcquirerPropertiesSource;
import cn.quant.baa.pay.acquirer.AcquirerPropertiesBuilder;
import cn.quant.baa.pay.acquirer.AcquirerProperties;
import cn.quant.baa.pay.acquirer.MerchantAcquirer;
import cn.quant.baa.pay.acquirer.alipay.AlipayMerchantAcquirer;
import cn.quant.baa.pay.acquirer.weixin.WeiXinMerchantAcquirer;
import cn.quant.baa.pay.jpa.entity.*;
import cn.quant.baa.pay.jpa.repository.*;
import cn.quant.baa.pay.model.DictionaryItem;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.Collection;
import java.util.List;
/**
* Created by Administrator on 2021/8/22 0022.
*/
@Configuration
public class AcquirerConfiguration {
@Autowired
private PayAccountRepository payAccountRepository;
@Autowired
private PayAppRepository payAppRepository;
@Autowired
private PayFeatureRepository payFeatureRepository;
@Autowired
private MchChannelRepository mchChannelRepository;
public AcquirerPropertiesBuilder getBuilder() {
List<PayAccountEntity> accounts = payAccountRepository.findAll();
List<PayFeatureEntity> features = payFeatureRepository.findAll();
List<PayAppEntity> apps = payAppRepository.findAll();
AcquirerPropertiesBuilder builder = new AcquirerPropertiesBuilder();
builder.accounts(accounts)
.features(features)
.apps(apps);
accounts.clear();
features.clear();
apps.clear();
return builder;
}
@Bean
public AcquirerPropertiesSource acquirerPropertiesSource() {
AcquirerPropertiesBuilder builder = getBuilder();
List<MchChannelEntity> entities = mchChannelRepository.findAll();
AcquirerPropertiesSource source = builder.build(entities);
builder.release();
entities.clear();
return source;
}
@Bean
public MerchantAcquirer acquirer(AcquirerPropertiesSource acquirerPropertiesSource) throws Exception {
MerchantAcquirer merchantAcquirer = MerchantAcquirer.getInstance();
Collection<AcquirerProperties> properties = acquirerPropertiesSource.getAll();
for (AcquirerProperties property : properties) {
if("WXP".equals(property.getPayChanCode())){
WeiXinMerchantAcquirer acquirer = new WeiXinMerchantAcquirer();
acquirer.init(property);
merchantAcquirer.register(acquirer);
} else if ("ALIP".equals(property.getPayChanCode())) {
AlipayMerchantAcquirer acquirer = new AlipayMerchantAcquirer();
acquirer.init(property);
merchantAcquirer.register(acquirer);
}
}
return merchantAcquirer;
}
}
package cn.quant.baa.pay.config;
import cn.quant.baa.pay.dict.DictType;
import cn.quant.baa.pay.model.DictionaryItem;
import com.google.common.base.Supplier;
import com.google.common.collect.Maps;
......
package cn.quant.baa.pay.config;
import cn.quant.baa.pay.acquirer.AcquirerConfiguration;
import cn.quant.baa.pay.acquirer.AcquirerConfigurer;
import cn.quant.baa.pay.acquirer.AcquirerProperties;
import cn.quant.baa.pay.acquirer.MerchantAcquirer;
import cn.quant.baa.pay.acquirer.alipay.AlipayMerchantAcquirer;
import cn.quant.baa.pay.acquirer.weixin.WeiXinMerchantAcquirer;
import cn.quant.baa.pay.jpa.entity.*;
import cn.quant.baa.pay.jpa.repository.*;
import cn.quant.baa.pay.jpa.entity.DictionaryEntity;
import cn.quant.baa.pay.jpa.repository.DictionaryRepository;
import cn.quant.baa.pay.model.DictionaryItem;
import cn.quant.spring.data.jpa.PersistentEntityInvoker;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.repository.support.Repositories;
import java.util.Collection;
import java.util.List;
/**
* Created by Administrator on 2021/8/22 0022.
* Created by Administrator on 2021/9/18 0018.
*/
@Configuration
public class ServerConfiguration {
@Autowired
private PayAccountRepository payAccountRepository;
@Autowired
private PayAppRepository payAppRepository;
@Autowired
private PayFeatureRepository payFeatureRepository;
@Autowired
private MchChannelRepository mchChannelRepository;
@Autowired
private DictionaryRepository dictionaryRepository;
public AcquirerConfigurer configurer() {
List<PayAccountEntity> accounts = payAccountRepository.findAll();
List<PayFeatureEntity> features = payFeatureRepository.findAll();
List<PayAppEntity> apps = payAppRepository.findAll();
AcquirerConfigurer configurer = new AcquirerConfigurer();
configurer.accounts(accounts)
.features(features)
.apps(apps);
accounts.clear();
features.clear();
apps.clear();
return configurer;
}
@Autowired
private ApplicationContext applicationContext;
@Bean
public DictionaryViewer dictionaryViewer() {
......@@ -69,30 +40,10 @@ public class ServerConfiguration {
}
@Bean
public AcquirerConfiguration acquirerConfiguration() {
AcquirerConfigurer configurer = configurer();
List<MchChannelEntity> entities = mchChannelRepository.findAll();
AcquirerConfiguration configuration = configurer.configure(entities);
configurer.release();
entities.clear();
return configuration;
}
@Bean
public MerchantAcquirer acquirer(AcquirerConfiguration acquirerConfiguration) throws Exception {
MerchantAcquirer merchantAcquirer = MerchantAcquirer.getInstance();
Collection<AcquirerProperties> properties = acquirerConfiguration.getAll();
for (AcquirerProperties property : properties) {
if("WXP".equals(property.getPayChanCode())){
WeiXinMerchantAcquirer acquirer = new WeiXinMerchantAcquirer();
acquirer.init(property);
merchantAcquirer.register(acquirer);
} else if ("ALIP".equals(property.getPayChanCode())) {
AlipayMerchantAcquirer acquirer = new AlipayMerchantAcquirer();
acquirer.init(property);
merchantAcquirer.register(acquirer);
}
}
return merchantAcquirer;
public PersistentEntityInvoker persistentEntityInvoker() {
Repositories repositories = new Repositories(applicationContext);
PersistentEntityInvoker invoker = new PersistentEntityInvoker(repositories);
return invoker;
}
}
package cn.quant.baa.pay.jpa.entity;
package cn.quant.baa.pay.jpa;
import cn.quant.baa.pay.acquirer.AcquirerProperties;
import cn.quant.baa.pay.context.TransactionSession;
import cn.quant.baa.pay.dict.*;
import cn.quant.baa.pay.jpa.entity.*;
import cn.quant.baa.pay.model.web.GoodsDetail;
import cn.quant.baa.pay.model.web.PayRequestData;
import cn.quant.spring.util.DateUtils;
......
package cn.quant.baa.pay.jpa.entity;
import cn.quant.spring.data.jpa.entity.EntityPrimaryIds;
import cn.quant.spring.data.jpa.entity.PrimaryIds;
import cn.quant.spring.util.StringUtils;
import javax.persistence.Column;
......@@ -12,7 +12,7 @@ import java.util.Objects;
* Created by Administrator on 2021/8/25 0025.
*/
@Embeddable
public class AccountIds extends EntityPrimaryIds implements Serializable {
public class AccountIds extends PrimaryIds implements Serializable {
private static final long serialVersionUID = -3364378648694932295L;
private final static String CLASS_NAME = AccountEntity.class.getSimpleName();
......
......@@ -19,6 +19,7 @@ import java.util.Objects;
public class CustomerEntity extends DescribablePartitionEntity implements Serializable {
private final static String CLASS_NAME = CustomerEntity.class.getSimpleName();
private static final long serialVersionUID = 2591866260454689833L;
@Id
@Column(name = "CUSTOMER_ID", nullable = false)
......
......@@ -17,6 +17,7 @@ import java.util.Objects;
@Table(name = "dictionary")
public class DictionaryEntity extends OptimisticEntity implements Serializable {
private static final long serialVersionUID = -4339755594508649928L;
@EmbeddedId
private DictionaryIds ids;
......
package cn.quant.baa.pay.jpa.entity;
import cn.quant.baa.pay.dict.DictType;
import cn.quant.spring.data.jpa.entity.EntityPrimaryIds;
import cn.quant.spring.data.jpa.entity.PrimaryIds;
import cn.quant.spring.util.StringUtils;
import javax.persistence.Column;
import javax.persistence.Embeddable;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import java.io.Serializable;
import java.util.Objects;
......@@ -15,7 +12,7 @@ import java.util.Objects;
* Created by Administrator on 2021/8/23 0023.
*/
@Embeddable
public class DictionaryIds extends EntityPrimaryIds implements Serializable {
public class DictionaryIds extends PrimaryIds implements Serializable {
private static final long serialVersionUID = 7804804141804874320L;
......
package cn.quant.baa.pay.jpa.entity;
import cn.quant.spring.data.jpa.entity.EntityPrimaryIds;
import cn.quant.spring.data.jpa.entity.PrimaryIds;
import cn.quant.spring.util.StringUtils;
import javax.persistence.Column;
......@@ -12,7 +12,7 @@ import java.util.Objects;
* Created by Administrator on 2021/8/22 0022.
*/
@Embeddable
public class PayAccountIds extends EntityPrimaryIds implements Serializable {
public class PayAccountIds extends PrimaryIds implements Serializable {
private static final long serialVersionUID = 5987381896875415656L;
......
package cn.quant.baa.pay.jpa.entity;
import cn.quant.baa.pay.dict.AccessCode;
import cn.quant.baa.pay.dict.AccessType;
import cn.quant.spring.data.jpa.entity.EntityPrimaryIds;
import cn.quant.spring.data.jpa.entity.PrimaryIds;
import cn.quant.spring.util.StringUtils;
import javax.persistence.Column;
......@@ -16,7 +15,7 @@ import java.util.Objects;
* Created by Administrator on 2021/8/22 0022.
*/
@Embeddable
public class PayFeatureIds extends EntityPrimaryIds implements Serializable {
public class PayFeatureIds extends PrimaryIds implements Serializable {
private static final long serialVersionUID = -8852766242045564647L;
......
package cn.quant.baa.pay.jpa.entity;
import cn.quant.spring.data.jpa.entity.EntityPrimaryIds;
import cn.quant.spring.data.jpa.entity.PrimaryIds;
import cn.quant.spring.util.StringUtils;
import javax.persistence.Column;
......@@ -12,7 +12,7 @@ import java.util.Objects;
* Created by Administrator on 2021/8/26 0026.
*/
@Embeddable
public class PayHistoryIds extends EntityPrimaryIds implements Serializable {
public class PayHistoryIds extends PrimaryIds implements Serializable {
public final static String CLASS_NAME = PayHistoryEntity.class.getSimpleName();
@Column(name = "INSTITUTION_ID", nullable = false, updatable = false, length = 4)
......
......@@ -3,7 +3,10 @@ package cn.quant.baa.pay.jpa.entity;
import cn.quant.spring.data.jpa.entity.DescriptionEntity;
import org.hibernate.annotations.Type;
import javax.persistence.*;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Objects;
/**
......@@ -11,7 +14,9 @@ import java.util.Objects;
*/
@Entity
@Table(name = "status_code")
public class StatusCodeEntity extends DescriptionEntity{
public class StatusCodeEntity extends DescriptionEntity {
private static final long serialVersionUID = -247953772558454731L;
@EmbeddedId
private StatusCodeIds ids;
......@@ -113,6 +118,18 @@ public class StatusCodeEntity extends DescriptionEntity{
this.messageCode = messageCode;
}
public String getInstitutionId(){
return this.ids.getInstitutionId();
}
public String getEntity(){
return this.ids.getEntity();
}
public String getCode(){
return this.ids.getCode();
}
@Override
public String getPersistentKey() {
return ids.getPersistentKey();
......
package cn.quant.baa.pay.jpa.entity;
import cn.quant.spring.data.jpa.entity.EntityPrimaryIds;
import cn.quant.spring.data.jpa.entity.PrimaryIds;
import cn.quant.spring.util.StringUtils;
import javax.persistence.Column;
......@@ -12,7 +12,7 @@ import java.util.Objects;
* Created by Administrator on 2021/9/13 0013.
*/
@Embeddable
public class StatusCodeIds extends EntityPrimaryIds implements Serializable {
public class StatusCodeIds extends PrimaryIds implements Serializable {
public final static String CLASS_NAME = StatusCodeEntity.class.getSimpleName();
private static final long serialVersionUID = 6497603433019425612L;
......
package cn.quant.baa.pay.model;
import cn.quant.spring.data.jpa.PersistentObject;
import java.io.Serializable;
/**
* Created by Administrator on 2021/9/13 0013.
*/
public class StatusCodeDTO implements Serializable{
public class StatusCode implements PersistentObject, Serializable {
private static final long serialVersionUID = 952357481570545998L;
private String institutionId;
private String entity;
......@@ -109,7 +111,7 @@ public class StatusCodeDTO implements Serializable{
@Override
public String toString() {
final StringBuilder sb = new StringBuilder("StatusCodeDTO{");
final StringBuilder sb = new StringBuilder("StatusCode{");
sb.append("institutionId='").append(institutionId).append('\'');
sb.append(", entity='").append(entity).append('\'');
sb.append(", code='").append(code).append('\'');
......
package cn.quant.baa.pay.model.web;
import cn.quant.spring.data.jpa.repository.PersistentKey;
import cn.quant.spring.data.jpa.PersistentKey;
import cn.quant.spring.util.StringUtils;
import java.io.Serializable;
......
......@@ -3,7 +3,7 @@ package cn.quant.baa.pay.service;
import cn.quant.baa.pay.context.TransactionSession;
import cn.quant.baa.pay.jpa.entity.AccountEntity;
import cn.quant.baa.pay.jpa.entity.AccountIds;
import cn.quant.baa.pay.jpa.entity.EntityBuilder;
import cn.quant.baa.pay.jpa.EntityBuilder;
import cn.quant.spring.IllegalParameterException;
import cn.quant.spring.NullException;
import cn.quant.spring.context.ContextLoader;
......
package cn.quant.baa.pay.service;
import cn.quant.baa.pay.acquirer.AcquirerConfiguration;
import cn.quant.baa.pay.acquirer.AcquirerProperties;
import cn.quant.baa.pay.acquirer.AcquirerPropertiesSource;
import cn.quant.baa.pay.component.ModelBuilder;
import cn.quant.baa.pay.config.LocalCacheConfiguration;
import cn.quant.baa.pay.model.web.MerchantAcquirerProperties;
import cn.quant.baa.pay.model.web.MerchantChannelRequestData;
......@@ -21,7 +22,7 @@ import java.util.Map;
@Service
public class MerchantStorageService {
@Autowired
private AcquirerConfiguration acquirerConfiguration;
private AcquirerPropertiesSource acquirerPropertiesSource;
@Autowired
private ModelBuilder modelBuilder;
......@@ -29,19 +30,18 @@ public class MerchantStorageService {
@Autowired
private CacheManager cacheManager;
@Cacheable(cacheManager = LocalCacheConfiguration.LOCAL_CACHE_MANAGER
, cacheNames = LocalCacheConfiguration.LOCAL_CACHE_ACQUIRER
, key = "'MerchantChannel$'+#requestData.getPersistentKey()")
, key = "'MerchantChannel$'+#requestData.persistentKey")
public Map<String, MerchantChannelResponseData> getChannels(MerchantChannelRequestData requestData) {
String mchId = requestData.getMchId();
String channel = requestData.getChannel();
Map<String, Collection<AcquirerProperties>> profiles;
if (StringUtils.isEmpty(channel)) {
profiles = acquirerConfiguration.get(mchId);
profiles = acquirerPropertiesSource.get(mchId);
} else {
profiles = acquirerConfiguration.get(mchId, channel);
profiles = acquirerPropertiesSource.get(mchId, channel);
}
Map<String, MerchantChannelResponseData> response = modelBuilder.toModel(profiles, requestData.getAccess());
......@@ -52,7 +52,7 @@ public class MerchantStorageService {
, cacheNames = LocalCacheConfiguration.LOCAL_CACHE_ACQUIRER
, key = "'MerchantChannel$'+#id")
public MerchantAcquirerProperties getChannel(Long id) {
AcquirerProperties profile = acquirerConfiguration.get(id);
AcquirerProperties profile = acquirerPropertiesSource.get(id);
return modelBuilder.toModel(profile);
}
}
package cn.quant.baa.pay.service;
import cn.quant.baa.pay.config.LocalCacheConfiguration;
import cn.quant.baa.pay.jpa.entity.StatusCodeEntity;
import cn.quant.baa.pay.jpa.entity.StatusCodeIds;
import cn.quant.baa.pay.model.StatusCode;
import cn.quant.spring.data.jpa.PersistentEntityInvoker;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
/**
* Created by Administrator on 2021/9/18 0018.
*/
@Service
public class ProfileStorageService {
@Autowired
private PersistentEntityInvoker persistentEntityInvoker;
@Cacheable(cacheManager = LocalCacheConfiguration.LOCAL_CACHE_MANAGER
, cacheNames = LocalCacheConfiguration.LOCAL_CACHE_PROFILE
, key = "#ids.persistentKey")
public StatusCode getStatusCode(StatusCodeIds ids) throws Exception {
StatusCode code = persistentEntityInvoker.Invoke(ids, StatusCodeEntity.class, StatusCode.class);
return code;
}
}
......@@ -20,8 +20,8 @@ import java.time.format.DateTimeFormatter;
/**
* <p><b>Application VM Option:</b><br/>
* <code>--spring.config.file=${project.configure.directory}/target/config/application-dev.properties </code><br/>
* <code>-Dlogging.config=${project.configure.directory}/target/config/logback-spring.xml</code></p>
* <code>--spring.config.file=${project.build.directory}/target/config/application-dev.properties </code><br/>
* <code>-Dlogging.config=${project.build.directory}/target/config/logback-spring.xml</code></p>
* <p><b>Enable Dubbo Annotation: </b><br/>
* <code>@org.springframework.context.annotation.ImportResource(locations = {"classpath:application-dubbo.xml"})</code></p>
*/
......
package cn.quant.baa.pay.rest;
import cn.quant.baa.pay.jpa.entity.StatusCodeIds;
import cn.quant.baa.pay.model.StatusCode;
import cn.quant.baa.pay.model.web.MerchantAcquirerProperties;
import cn.quant.baa.pay.model.web.MerchantChannelResponseData;
import cn.quant.baa.pay.model.web.MerchantChannelRequestData;
import cn.quant.baa.pay.annotation.BusinessMapping;
import cn.quant.baa.pay.context.TransactionSession;
import cn.quant.baa.pay.service.ProfileStorageService;
import cn.quant.baa.pay.util.AssertUtils;
import cn.quant.baa.pay.model.BusinessRequest;
import cn.quant.baa.pay.service.MerchantStorageService;
......@@ -44,7 +47,6 @@ public class MerchantController extends AbstractController {
AssertUtils.throwMessage(EMPTY_REQ_DATA);
}
Map<String, MerchantChannelResponseData> channels = merchantStorageService.getChannels(data);
ResponseEntity<HttpResponseData> entity = succeed(requestId, channels);
return entity;
......@@ -53,7 +55,8 @@ public class MerchantController extends AbstractController {
@ResponseBody
@BusinessMapping(session = 1)
@PostMapping("/one")
public ResponseEntity one(@RequestBody BusinessRequest<MerchantChannelRequestData> request) {
public ResponseEntity one(@RequestBody BusinessRequest<MerchantChannelRequestData> request) throws Exception {
TransactionSession session = TransactionSession.session();
String requestId = session.getRequestId();
......
package cn.quant.baa.pay.service;
import cn.quant.baa.pay.acquirer.AcquirerConfiguration;
import cn.quant.baa.pay.acquirer.AcquirerPropertiesSource;
import cn.quant.baa.pay.acquirer.AcquirerProperties;
import cn.quant.baa.pay.acquirer.MerchantAcquirer;
import cn.quant.baa.pay.context.TransactionSession;
import cn.quant.baa.pay.jpa.EntityBuilder;
import cn.quant.baa.pay.jpa.entity.*;
import cn.quant.baa.pay.model.web.*;
import cn.quant.baa.pay.util.AssertUtils;
......@@ -29,7 +30,7 @@ public class TransactionService extends BusinessService {
private static final Logger logger = LoggerFactory.getLogger(TransactionService.class);
@Autowired
private AcquirerConfiguration acquirerConfiguration;
private AcquirerPropertiesSource acquirerPropertiesSource;
@Autowired
private MerchantAcquirer acquirer;
......@@ -42,14 +43,13 @@ public class TransactionService extends BusinessService {
}
}
@Transactional
public TransactionSession payHistory(PayRequestData data) {
validate(data);
String chanId = data.getChanId();
AcquirerProperties profile = acquirerConfiguration.get(Long.valueOf(chanId));
AcquirerProperties profile = acquirerPropertiesSource.get(Long.valueOf(chanId));
if (profile == null) {
AssertUtils.throwMessage(ACQUIRER_NOSUCH, chanId);
}
......
......@@ -16,7 +16,7 @@ import java.nio.charset.Charset;
/**
* <p><b>JUnit VM Option:</b><br/>
* <code>-Dspring.config.file=${project.configure.directory}/target/config/application-dev.properties </code><br/>
* <code>-Dspring.config.file=${project.build.directory}/target/config/application-dev.properties </code><br/>
* </p>
*/
@RunWith(SpringRunner.class)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment