spring Ioc和AOP
1、spring框架是java应用最广的框架,他的成功源于理念,而不是技术本身;Ioc是一个容器,在spring中,他会认为一切java资源都是javabean,容器的目标就是管理这些bean和它们之间的关系;springioc容器能够对其进行管理,只是springioc管理对象和其依赖关系,采取的不是人为的主动创建

2、而是有springioc自动通过扫描创建出的,也就是说spring是依靠描述来完成对象的创建及其依赖关系的,ioc的目标就是管理bean对象;ioc的本质就是通过第三方框架帮助我们管理bean对象的生命周期以及维护各个bean对象之间的关系;

3、注入,将一组具有工作关系的对象,把其中一个对象作为参数注入给另一个对象;切面:影响多个oop对象的一个条件;aop常用于数据库事务的编程,在aop实现的额数据库事务管理中,是以异常作为消息的,即切面条件,在默认的情况下只要spring接收到异常信息,他就会进行事务的回滚,从而保证数据的一致性;

4、@Transactionalpublic void insert(SellInfo sell) {List<Integer> seedIds = StringUtil.splitInteger(sell.getSeedId());List<String> seedName = StringUtil.splitString(sell.getSeedName());List<Integer> number = StringUtil.splitInteger(sell.getNumber());List<Double> price = StringUtil.splitDouble(sell.getPrice());List<Double> percent = StringUtil.splitDouble(sell.getPercent());// 种子销售登记

5、for (int i = 0; i < seedIds.size(); i++) {Profit p = new Profit(se造婷用痃ll.getStorePhone(), seedIds.get(i), number.get(i));profitDao.insert(p);}Double total = 0.0;Double temp = 0.0;// 用户购买种子的总金额for (int i = 0; i < number.size(); i++) {temp = number.get(i) * price.get(i);total += temp;}// 当前用户的总利润Double totalPercent = 0.0;Double temp1 = 0.0;for (int i = 0; i < number.size(); i++) {temp1 = number.get(i) * price.get(i) * percent.get(i);totalPercent += temp1;}// 用户购买详情的展示String details = "";String s = "";for (int i = 0; i < seedName.size(); i++) {s = seedName.get(i) + ":" + number.get(i) + ";";details += s;}// 用户抽奖次数Integer customLetteryNum = (int) (total / Deploy.CERTAIN);// 用户奖品数组String randomLottery = "";// 查找用户,并将抽奖次数累加Custom c = customDao.findOne(sell.getPhone(), sell.getName());//设置奖项内容Double dp = totalPercent;Integer lottery = dp >= Deploy.ONE ? 1 : (dp >= Deploy.TWO ? 2 : (dp >= Deploy.THREE ? 3 : 0));randomLottery = lottery+",";for (int i = 0; i < customLetteryNum-1; i++) {randomLottery += 0+",";}if (c == null) {

6、//用户第一次购买customDao.insert(sell.getPhone(), sell.getName(像粜杵泳),"");customDao.update(sell.getPhone(), 0 + customLetteryNum, randomLottery, null);} else {customDao.update(sell.getPhone(), c.getLotteryNum() + customLetteryNum,StringUtil.nullReturn(c.getLotteryArray()) + randomLottery, null);}sell.setTotalProfit(totalPercent);sell.setDetails(details);sell.setTotalMoney(total);// 转换时间戳存数据库sell.setDate(StringUtil.format(new java.util.Date()));sellInfoDao.insert(sell);}
