spring注解方式在一个普通的java类里面注入dao 计算两个时间之间的时间差问题

关于spring注解方式在一个普通的java类里面注入dao  @Component不靠谱的情况

 

import project.com.dao.QuanJuBiaoDao;
import project.com.domain.XmlYueDuData;

public class ReturnYueDuId {
    ApplicationContext ctx = new ClassPathXmlApplicationContext("../../WEB-INF/springMVC-servlet.xml");
    QuanJuBiaoDao quanJuBiaoDao = (QuanJuBiaoDao) ctx.getBean("quanJuBiaoDao");

  //注入普通java类这样获取
    private static ReturnYueDuId ryd=new ReturnYueDuId();
    
    public static ReturnYueDuId getryd(){
        return ryd;
    }
    
    public List<Long> yueDuIdList(String yuedudate){
        List<Long> list = new ArrayList<Long>();
        long yueduid = 0;
        //这里会有一个异常,所以要用try catch捕获异常
        try {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            Date date1 = sdf.parse(yuedudate);
            Date date2 = new Date();
            Calendar cal1 = Calendar.getInstance();
            cal1.setTime(date1);
            Calendar cal2 = Calendar.getInstance();
            cal2.setTime(date2);
            long day1= cal1.get(Calendar.DAY_OF_YEAR);
            long day2 = cal2.get(Calendar.DAY_OF_YEAR);
            
            long year1 = cal1.get(Calendar.YEAR);
            long year2 = cal2.get(Calendar.YEAR);
            List<Long> listId = XmlYueDuData.getMe().getYueDuList();
            long maxId =  Collections.max(listId);
            if(year1 != year2)   //不同年
            {
                long timeDistance = 0 ;
                for(long i = year1 ; i < year2 ; i ++)
                {
                    if(i%4==0 && i%100!=0 || i%400==0)    //闰年            
                    {
                        timeDistance += 366;
                    }
                    else    //不是闰年
                    {
                        timeDistance += 365;
                    }
                }
                System.out.print(timeDistance + (day2-day1));
                yueduid = timeDistance + (day2-day1)+1;
                //如果阅读id为零,代表满100天了,更改阅读时间为当前时间,接着轮换
                if(yueduid==0 || yueduid>maxId || yueduid<0){
                    //修改全局表的时间为今天
                    String yuedushijian = sdf.format(new Date());
                    quanJuBiaoDao.updateValueByYueDuShiJian(yuedushijian);

//这里就可以获得,@Component注入成功不了
                    yueduid=1;
                }
                list.add(yueduid*10+1);
                list.add(yueduid*10+2);
                return list;
            }
            else    //同年
            {
                System.out.print("判断day2 - day1 : " + (day2-day1));
                System.out.print(day2-day1);
                yueduid = (day2-day1)+1;
                if(yueduid==0 || yueduid>maxId || yueduid<0){
                    //修改全局表的时间为今天
                    String yuedushijian = sdf.format(new Date());
                    quanJuBiaoDao.updateValueByYueDuShiJian(yuedushijian);
                    yueduid=1;
                }
                list.add(yueduid*10+1);
                list.add(yueduid*10+2);
                return list;
            }
        }catch (Exception e){
            e.printStackTrace();
        }
        list.add(yueduid+11);
        list.add(yueduid+12);
        return list;
  }

//<context:component-scan base-package="project.com" />

//不是扫描全局的话,需单独配置, 例如

<bean id="contextUtil" class="project.com.util.ContextUtil"></bean>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值