当前位置: 首页 > news >正文

网站建设实训报告册h5移动端网站开发

网站建设实训报告册,h5移动端网站开发,昆明汽车建站网站模板,wordpress添加搜索插件学习笔记系列开头惯例发布一些寻亲消息 链接#xff1a;https://baobeihuijia.com/bbhj/ Mybatis - Spring#xff08;使用第三方包new一个对象bean#xff09; 原始的Mybatis与数据库交互【通过sqlmapconfig来配置和连接】 初始化SqlSessionFactory获得连接获取数据层接口…学习笔记系列开头惯例发布一些寻亲消息 链接https://baobeihuijia.com/bbhj/ Mybatis - Spring使用第三方包new一个对象bean 原始的Mybatis与数据库交互【通过sqlmapconfig来配置和连接】 初始化SqlSessionFactory获得连接获取数据层接口 需要一个类与数据中的数据进行匹配用注解形式进行增删改查 关闭连接 使用第三方包Spring-Mybatis将mybatis改为spring的模式不要再类内new SqlSessionFactory而是把mybatis当作容器的对象可以用 引入mybatis-spring第三方包来帮助整合在注解方法中如果要用第三方包则需要新建一个config然后在这个类中手动new一个bean通过Bean生成一个SqlSessionFactoryBean对象加入扫描类型的包与数据源建立连接生成MapperScannerConfigurer对象获取数据层因此就可以通过注解的方式生成对象调用数据库了 public class MybatisConfig {//定义beanSqlSessionFactoryBean用于产生SqlSessionFactory对象Beanpublic SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource){SqlSessionFactoryBean ssfb new SqlSessionFactoryBean();ssfb.setTypeAliasesPackage(com.itheima.domain);ssfb.setDataSource(dataSource);return ssfb;}//定义bean返回MapperScannerConfigurer对象Beanpublic MapperScannerConfigurer mapperScannerConfigurer(){MapperScannerConfigurer msc new MapperScannerConfigurer();msc.setBasePackage(com.itheima.dao);return msc;} }Junit-Spring添加注解 Junit与spring的整合在测试类上添加注解然后在类内直接Autowired就可以将容器的对象引入测试 //设置类运行器 RunWith(SpringJUnit4ClassRunner.class) //设置Spring环境对应的配置类 ContextConfiguration(classes SpringConfig.class)AOP-Spring 新建一个class作为component并且标记该类不是普通的类是AOP类打开config的AOP扫描 一般用在service拦截判断拦截一批处理一批然后将正确数据传入数据层 AOP面向切面编程通过调用第三方包AOP不需要new对象只需要新建一个component类并且通过EnableAspectJAutoProxy和Aspect保证config知道有AOP并且知道哪个是AOP从而调度对象代码执行时切入执行通知 在不惊动原始设计的基础上为其增强功能 连接点运行过程的任意方法切入点多个方法通知在切入点指定的操作即共性功能切面通知与切入点的绑定 在spring-config中添加 EnableAspectJAutoProxyComponent //设置当前类为切面类类 Aspect public class MyAdvice {//设置切入点要求配置在方法上方Pointcut(execution(void com.itheima.dao.BookDao.update()))private void pt(){}//设置在切入点pt()的前面运行当前操作前置通知// Before(pt())public void method(){System.out.println(System.currentTimeMillis());} }AOP工作流程 spring容器启动容器开启AOP检测扫描component的时候扫描Aspect读取所有的绑定通知的切入点 匹配成功创建原始对象被代理的原始对象称为目标对象的代理对象bean进入容器匹配失败自定义对象以及引入的对象如mybatisbean加入到容器 AOP切入点描述表达式 execution(返回值 方法路径 (参数)) // 采用通配符来为一批方法设置切入点// 技巧 切入点一般描述到接口 返回值对于增删改方法用精准类型加速匹配对于查询类使用*通配快速匹配AOP通知类型 前置通知Before 后置通知After 环绕Around【ProceedingJoinPoint pjp】 // 拦截后需要return // 要抛出异常不然就相当于执行原始代码出现问题但是在这里将问题吃掉了Around(pt2())public Object aroundSelect(ProceedingJoinPoint pjp) throws Throwable {System.out.println(around before advice ...);//表示对原始操作的调用Integer ret (Integer) pjp.proceed();System.out.println(around after advice ...);return ret;}AfterReturning AfterThrow AOP通知拿参数 都可以拿到参数可被修改 JoinPoint jp Object[] args jp.getArgs(); System.out.println(Arrays.toString(args));public Object around(ProceedingJoinPoint pjp) {Object[] args pjp.getArgs();System.out.println(Arrays.toString(args));args[0] 666;Object ret null;try {ret pjp.proceed(args);} catch (Throwable t) {t.printStackTrace();}return ret;}返回值 // 接返回值AfterReturning(value pt(),returning ret)public void afterReturning(JoinPoint jp,String ret) {System.out.println(afterReturning advice ...ret);}// 接返回值Around(pt2())public Object aroundSelect(ProceedingJoinPoint pjp) throws Throwable {System.out.println(around before advice ...);//表示对原始操作的调用Integer ret (Integer) pjp.proceed();System.out.println(around after advice ...);return ret;}异常 Transactional// 接异常AfterThrowing(value pt(),throwing t)public void afterThrowing(Throwable t) {System.out.println(afterThrowing advice ...t); }// 接异常Around(pt2())public Object aroundSelect(ProceedingJoinPoint pjp) throws Throwable {System.out.println(around before advice ...);//表示对原始操作的调用Integer ret (Integer) pjp.proceed();System.out.println(around after advice ...);return ret;}事务 【spring在业务层开了一个事务保证一系列数据操作同成功同失败用的是mysql的事务原理】 // 在接口上添加Transactional// 定义一个事务管理器Beanpublic PlatformTransactionManager transactionManager(DataSource dataSource){DataSourceTransactionManager transactionManager new DataSourceTransactionManager();//第三方需要对象的时候要通过参数transactionManager.setDataSource(dataSource);return transactionManager;}// 告诉spring要检测注解事务 EnableTransactionManagementSpring的事务原理:通过使用共同的datasource来开启mysql事务 事务管理员发起事务方事务协调员加入事务方 有些异常默认不参与回滚需要Transactional的时候手动添加 事务传播行为有七种REQUIRES_NEW是让该事务协调员不加入到事务管理员而是自己开一个事务失败了不会跟着回滚 Transactional(propagation Propagation.REQUIRES_NEW)务方 [外链图片转存中…(img-OBMznC6o-1703559380919)] 有些异常默认不参与回滚需要Transactional的时候手动添加 事务传播行为有七种REQUIRES_NEW是让该事务协调员不加入到事务管理员而是自己开一个事务失败了不会跟着回滚 Transactional(propagation Propagation.REQUIRES_NEW)
http://www.zqtcl.cn/news/29961/

相关文章:

  • 最专业的企业营销型网站建设公司南皮做网站
  • 网站设计顺德青岛网站建设机构
  • 门户网站的基本特征a信息与服务网页制作简明教程
  • 广州传业建设有限公司网站网站开发成本核算及账务处理
  • 内蒙古高等级公路建设开发有限责任公司网站青白江建设局网站
  • 松江 网站建设公司手机上装修设计软件
  • 网站开发网络公六安钢铁吧
  • 五大门户网站网站评估做的好不好
  • 网站开发绑定qq酒店网站建设策划
  • 网站除了做流量还需要什么软件吗移动通信网站建设
  • 电子商务网站建设调研报告网站后台fpt
  • zf厂手表网站网站怎么建设微信支付宝支付功能
  • 苏州智能网站开发360网页
  • 关于做公司官方网站域名申请google推广技巧
  • 最简单网站建设网站标题psd
  • 有没有专门做游戏辅助的网站系统安装wordpress
  • 有没有做软件的网站2022年app拉新推广项目
  • 网站建设 博采中国最新军事新闻直播
  • 介休做网站全屋家具定制价格表
  • 求个没封的a站2022国都建设集团网站
  • 伍佰亿网站建设污水处理厂网站建设
  • 佛山网站建设佛山网站制作wordpress 微信 同步
  • 网站开发是什么意思啊wordpress 主题预览
  • 重庆公司建站网站建设使用软件
  • 怎么建设自己导购网站合肥网
  • asp化妆品网站 后台wordpress做商城网站吗
  • 虚拟主机怎么设计网站吗手机微信小程序免费制作平台
  • 网站备案有电话来dw个人网站建立教学
  • 网站开发 前端 外包中国国家培训网官网
  • 广州知名网站设计青岛seo优化