Mars 3.0.11 正式发布

 贝克街的天才
发布于 2020年02月12日
收藏 7

更新如下

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向下兼容

@MarsApi
public class DemoController {

    @MarsWrite("userInfoServiceImpl")
    private UserInfoService userInfoService;

    public String demo(UserInfoDTO userInfoDTO, HttpMarsRequest request){
        return "";
    }
}

MarsApi注解新增属性refBean(仅限于DAP场景)

/**
 * 声明式接口,暴露给前端
 * 具体的业务逻辑,在这个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);
}

官网地址:http://mars-framework.com/

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:Mars 3.0.11 正式发布
加载中

最新评论(2

写给三月
写给三月
mars-config中的properties设置建议用set值,不然key值很容易会弄错
写给三月
写给三月
好东西,用起来也不是很陌生
返回顶部
顶部