BP项目第二天

1、在【springboot】中获取spring容器中的bean(https://blog.csdn.net/lmb55/article/details/82156262?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-1&spm=1001.2101.3001.4242)
SpringBoot平台中采用ApplicationContextAware的方式完成ApplicationContext实例的获取,并通过ApplicationContext实例来手动获取容器中的bean实例。(这种方式与导入包创建对象实例有什么区别呢?)

2、RestTemplate详解(https://www.jianshu.com/p/90ec27b3b518)
resttemplate实现对restful的访问(与apache的HttpClient功能类似)

3、@Transactional(rollbackFor = Exception.class)(https://www.jianshu.com/p/befc2d73e487)
等同于@Transactional(rollbackForClassName = Exception) 与之相反 @noRollbackFor
使用误区:被引用的方法添加注解。aInnerFunction抛异常。

public class AClass {

    public void aFunction() {
        //todo: 数据库操作A(增,删,该)
        aInnerFunction(); // 调用内部没有添加@Transactional注解的函数
    }

    @Transactional(rollbackFor = Exception.class)
    protected void aInnerFunction() {
        //todo: 操作数据B(做了增,删,改 操作)
        throw new RuntimeException("函数执行有异常!");
    }

}

结果:两个函数对数据库的操作都不会回滚。因为内部函数@Transactional注解添加和没添加一样。

4\MP中Iserver接口的介绍(https://blog.csdn.net/weixin_38111957/article/details/92415413)
查看源代码发现,其实将基本的增删改查用于server层继承使用。与mapper层继承BaseMapper功能类似
mybatis抽取基类实现通用增删改查(https://blog.csdn.net/YingTao8/article/details/83116256)

5、@Transactional注解和trycatch联合使用(https://blog.csdn.net/taiguolaotu/article/details/112480910)
Transactional出现异常全部事务出现回滚;
联合使用时,异常被try catch捕获,其他数据依旧可以继续操作不中断。

@Service
public class SysNewsServiceImpl implements SysNewsService {

    private Logger logger = LoggerFactory.getLogger(SysNewsServiceImpl.class);

    @Autowired
    private SysNewsMapper sysNewsMapper;

    @Override
    @Transactional(rollbackFor=Exception.class)
    public void addSysNews(SysNews sysNews) {

        SysNews sysNews1 = new SysNews( "2", "2", 2, 2, new Date());
        SysNews sysNews2 = new SysNews( "东风然后涂华军软件园ada法师法师发大事发生", "1", 1, 1, new Date());

        // 东风然后涂华军软件园ada法师法师发大事发生

        List<SysNews> sysNewsList = new ArrayList<>();
        sysNewsList.add(sysNews1);
        sysNewsList.add(sysNews2);

        for (SysNews news : sysNewsList) {
            try {
                sysNewsMapper.insert(news);
            } catch (Exception e) {
                logger.info("增加消息出错",e);
            }
        }

    }
}

6、多线程 CallAble接口的实现(https://blog.csdn.net/qq_844085127/article/details/108872756)
多线程的实现方式有几种,1、继承Thread类;2、实现Runnable接口
CallAble接口也可以实现多线程,和Runnable区别在于CallAble可以有返回值,也可以抛出异常,而Runnable没有

7、java中定时j接口Job的使用(https://blog.csdn.net/weixin_43751710/article/details/90597263)
此处需要理解几个核心元素:任务,触发器,调度器
任务:job用来定义任务的执行逻辑;jobDetail用来描述job的定义
触发器:用来定义调度任务的时间规则,在Quartz中主要由四种类型的Trigger:SimpleTrigger、CronTrigger(常用)、DataIntervalTrigger、NthIncludedTrigger
调度器:实际执行调度逻辑的控制器,Quartz提供了DirctSchedulerFactory和StdSchedulerFactory等工程类,用于支持Scheduler相关对象的产生。
在这里插入图片描述

8、log.error拼接中文报错error(https://blog.csdn.net/yangshangwei/article/details/50894202)
参考此文档处理该问题。
, , AidlTokenType.import or AidlTokenType.package expected, got ‘非’
此处拼接中文报出异常,但还是不太清楚为何出现此异常,留下记录。
在这里插入图片描述
相同的路径,找到图中的标记,然后进行取消勾选。
在这里插入图片描述
9、ApiModel和ApiModelProperty的用法(https://www.5axxw.com/wiki/content/1u9xu6)
@Api用法介绍(https://blog.csdn.net/kang9399052316/article/details/105765068)
@Controller和@RestController(等同于@ResponseBody和@Controller的组合使用,但是无法返回原来的页面)的用法(https://blog.csdn.net/u010412719/article/details/69710480)
@RequestParam

10、@Param注解使用介绍(https://blog.csdn.net/jiashanshan521/article/details/86691912 https://blog.csdn.net/jiashanshan521/article/details/86691912)
主要功能是在mapper文件中对方法中参数的标注,对Mapper.xml文件接收时可以得知参数的名称以及参数类型。(一般使用的是#{}的方式,${}会有sql注入的问题)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值