一开始我是这样写的:
public class BaseUtil {
private static final Logger LOGGER = Logger.getLogger(BaseUtil.class);
Calendar cal = Calendar.getInstance();
String time = "" + cal.get(Calendar.YEAR) + (cal.get(Calendar.MONTH) + 1);// 拼接当前的年月
// 201611
String timeDay = "" + cal.get(Calendar.YEAR)
+ (cal.get(Calendar.MONTH) + 1) + cal.get(Calendar.DAY_OF_MONTH);// 拼接当前的年月日
// 20161110
// @Resource
// private LoginDao loginDao;
// @Resource
// LoginInfoDao loginInfoDao;
// @Resource
// BudgetDao budgetDao;
然后调用时直接使用类名.方法名或者new了个对象.方法名 但是到了这里就怎么都无法注入进来,@Component加上也不行
今天无意中被我解决了这个问题.方式如下:
1.此处去调用service层.但是使用注入方式注入service层
@RequestMapping("/getBudget.htm")
public void getBudget(String token,HttpServletResponse resp) {
budgetService.sss();
try {
aliBillService.unZip(new File("11"), 111);
} catch (JcsegException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (ParseException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
2.service层,使用component注解,这里的Dao接口就注入成功了:
@Component
public class BudgetService {
@Resource
BudgetDao budgetDao;
public void sss(){
System.out.println(budgetDao);
}
}
个人猜测这个是由于上下文之类的关系把.首先controller层中需要注入了service层.这样service层中才能继续注入Dao层.可能是父亲层注入了service层,被spring容器管理了.那么service层spring才能接着注入
如果有知道原委的大牛,欢迎拍砖留言