1. 去除了配置文件,採用類配置
更加簡單易懂,且由於類會在編譯時檢查語法,所以不易出錯
2. MarsApi 向下兼容
也就是說以後除了DAP,還支持傳統的Controller寫法
3. MarsApi註解新增屬性
可以統一配置需要的bean,避免每個方法上都要通過MarsReference註解來指定引用的bean
新建一個任意java類,繼承MarsConfig類
public class DemoConfig extends MarsConfig {
// 數據源,必配,用的是阿里巴巴的 druid數據源,其他屬性可自行查閱
@Override
public List jdbcProperties() {
List list = new ArrayList();
Properties properties = new Properties();
properties.put("name","dataSource");
properties.put("url","jdbc:mysql://10.211.55.15:3306/mars?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8");
properties.put("username","root");
properties.put("password","Root123456!");
properties.put("driverClassName","com.mysql.jdbc.Driver");
list.add(properties);
// 如果要多個數據源,add多個到list即可
return list;
}
/* ******** 以下內容,如果不需要或者用默認值,則可以不重寫 ******** */
// 埠號,默認8080
@Override
public int port() {
return super.port();
}
// jwt失效時間,默認一天
@Override
public int jwtTime() {
return super.jwtTime();
}
// 文件上傳大小限制,默認單個文件2M,一次最多傳10M
@Override
public FileUploadConfig fileUploadConfig() {
return super.fileUploadConfig();
}
// 跨域配置,默認可以跨域
@Override
public CrossDomainConfig crossDomainConfig() {
return super.crossDomainConfig();
}
// redis連接池,如果項目不需要連redis,可以不重寫
@Override
public JedisConfig jedisConfig() {
return super.jedisConfig();
}
// 自定義配置,如果不需要,可以不重寫
@Override
public Map marsValues() {
Map map = new HashMap();
map.put("aaa.ggg.ccc","123");
map.put("aaa.jjj","456");
map.put("lll","789");
map.put("aaa.bbb.ccc","098");
map.put("aaa.ccc","765");
map.put("ggg","432");
return map;
}
}
@MarsApi
public class DemoController {
@MarsWrite("userInfoServiceImpl")
private UserInfoService userInfoService;
public String demo(UserInfoDTO userInfoDTO, HttpMarsRequest request){
return "";
}
}
/**
* 聲明式介面,暴露給前端
* 具體的業務邏輯,在這個interface的實現類裡面
*/
@MarsApi(refBean="要引用的bean的name")
public interface UserInfoService {
/**
* 引用具體業務邏輯,與Service徹底散藕
*
* 這個思路其實跟Dubbo介面差不多
*
* @param userInfoDTO
* @return
*/
@MarsReference(beanName = "要引用的bean的name(MarsApi註解如果配了refBean,這個就不需要了)",refName = "引用的bean裡面的方法名稱,不配默認為這個方法名")
String login(UserInfoDTO userInfoDTO);
}
[admin
]