【Lolttery】项目开发日志 - (三)维护好一个项目好难

项目的各种配置开始出现混乱的现象了

在只有一个人开发的情况下也开始感受到维护一个项目的难度。

之前明明还好用的东西,转眼就各种莫名其妙的报错,完全不知道为什么。

今天一天的工作基本上就是整理各种配置。

再加上之前数据库设计出现了问题,要增加一个表,改几个名字,删几个字段……真是头大

 

1、gradle排除依赖

在打war包的时候出现了spring-boot与dubbo框架自带的spring2.5.6冲突的情况,于是学会了这么一招:

//仅在本地执行时使用,不添加到war
    providedRuntime 'org.springframework:spring:2.5.6.SEC03'
    //排除依赖
    compile(project(':client-core')) {
        exclude group:"org.springframework", module:"spring:2.5.6.SEC03"
    }

配置写在gradle的dependencies中,将这个包排除在外,用新的spring4就好了。

不禁吐槽dubbo是有多古老的框架嘛?为啥不支持新一代的spring啊?

然而今天配置完后出现了找不到spring-servlet.xml配置文件的问题。明明放在一起的spring-core.xml都能找到的说。此问题留待明天解决。

 

2、spring使用配置文件

在本地环境、测试环境、生产环境的各种切换当真是非常操蛋的一件事情。

为此做的第一件工作是统一数据源,redis、mysql等数据源都分别创建唯一的bean用spring注入。算是很基本的做法。

这两天发现就算是每次改spring的xml文件也是个挺操蛋的事情。于是小小的尝试了一下这个标签:

<context:property-placeholder location="/config.properties"/>

应该算是新增的标签,在网上搜索到的方法要活生生的写一个bean配置,这个能省事不少。

这样直接用${prop.name}就可以添加配置咯~

 

3、mybatis联合查询~

还记得上次说的mybatis联合查询功能么,很快就用上了。

为了能利用这个功能,我活生生的修改了数据库的结构。其实也是一开始设计的不标准。这次彻底符合2NF的设计,就可以愉快的联合查询了。

作为这次修改的教训:

不要把m:n的关联写到数据表里面!

不要把m:n的关联写到数据表里面!

不要把m:n的关联写到数据表里面!

多建一个关联表不会死人。

第一个联合查询的代码贴上来留作纪念~

<resultMap type="com.xinou.lolttery.server.bean.Team" id="teamResultMap">
        <!-- 属性名和数据库列名映射 -->
        <id property="id" column="team_id"  />
        <result property="shortname" column="team_shortname"  />
        <result property="logo" column="team_logo"  />
    </resultMap>

    <resultMap type="com.xinou.lolttery.server.bean.MatchTeam" id="linkResultMap">
        <!-- 属性名和数据库列名映射 -->
        <id property="id" column="link_id"  />
        <result property="teamid" column="link_teamid"  />
        <result property="place" column="link_place"  />
    </resultMap>

    <resultMap id="appMatchList" type="com.xinou.lolttery.server.bean.result.AppMatchList">
        <id property="id" column="id" />
        <result property="zone" column="zone" />
        <result property="winner" column="winner" />
        <result property="zonename" column="zonename" />
        <result property="zonelogo" column="zonelogo" />
        <result property="matchdate" column="matchdate" />
        <result property="matchmode" column="matchmode" />
        <result property="result" column="result" />
        <collection property="teams" ofType="com.xinou.lolttery.server.bean.Team" resultMap="teamResultMap"/>
        <collection property="links" ofType="com.xinou.lolttery.server.bean.MatchTeam" resultMap="linkResultMap"/>
    </resultMap>

    <select id="queryByTime" parameterType="long" resultType="com.xinou.lolttery.server.bean.result.AppMatchList" resultMap="appMatchList">
        select m.*,mt.id link_id,mt.teamid link_teamid,mt.place link_place,t.id team_id,
        t.shortname team_shortname,t.logo team_logo, z.name zonename,z.logo zonelogo from
        ((lt_match m left join lt_match_team mt on mt.matchid = m.id ) left join lt_team t on t.id=mt.teamid)
         left join lt_match_zone z on m.zone = z.id where m.matchdate &lt; #{0} limit 0,20
    </select>

 

转载于:https://www.cnblogs.com/Ayanami-Blob/p/5338806.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值