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

网站开发与开发推广软件工具

网站开发与开发,推广软件工具,动漫网站建设意义,衡阳seo优化服务1.什么是IOC和AOP#xff1f;了解么#xff1f; IOC#xff08;控制反转#xff09;和AOP#xff08;面向切面编程#xff09; 1. IOC#xff08;控制反转#xff09; 概念 IOC#xff08;Inversion of Control#xff09;是面向对象编程中的一个设计原则#xf…1.什么是IOC和AOP了解么 IOC控制反转和AOP面向切面编程 1. IOC控制反转 概念 IOCInversion of Control是面向对象编程中的一个设计原则意味着控制的反转或转移。简单来说IOC把对象的创建和依赖关系的管理交给容器而不是由程序员手动管理。通过IOC程序中的组件之间变得松耦合组件可以独立测试和维护。 public class Service {private Database database;public Service() {this.database new Database(); // 这里硬编码了依赖}public void processData() {database.save();} }传统的创建对象是我们自己手动来创建的这样来说就是高耦合每次都创建对象麻烦 通过 IOC我们将依赖的对象如 Database从 Service 类中分离出来由外部容器比如 Spring 容器来管理。这样Service 类就可以聚焦于业务逻辑容器负责对象的创建和注入 Spring框架提供了两种常见的依赖注入方式 构造器注入 通过构造函数注入依赖的对象。 Component public class Service {private final Database database;Autowiredpublic Service(Database database) {this.database database;}public void processData() {database.save();} }Setter注入 通过setter方法注入依赖的对象。 Component public class Service {private Database database;Autowiredpublic void setDatabase(Database database) {this.database database;}public void processData() {database.save();} }在开发过程中呢一般结合注解不会手动去创建对象太麻烦 优势 松耦合减少了类之间的耦合增加了灵活性。易于测试可以轻松模拟依赖便于单元测试。可扩展性容器可以动态注入不同的实现类使得程序更容易扩展。 2. AOP面向切面编程 概念 AOPAspect-Oriented Programming面向切面编程是一种编程范式旨在将横切关注点cross-cutting concerns从业务逻辑中分离出来。横切关注点指的是那些与核心业务逻辑无关但又需要在多个地方执行的功能如日志、性能监控、安全控制、事务管理等。 核心概念 切面Aspect表示横切关注点的模块化。它可以定义在多个类中应用的逻辑如日志记录、事务管理等。连接点Join Point是程序执行的一个点通常是方法调用。AOP可以在这些点上执行特定的动作。通知Advice是横切逻辑的具体实现。通知可以在切入点前before、后after或方法执行抛出异常时around执行。切入点Pointcut是AOP应用到哪些方法的定义。通过切入点表达式来指定切面的作用范围。织入Weaving将切面应用到目标对象或类上的过程。织入可以发生在编译时、类加载时或运行时。 2.这个核心概念了解就行了重要的是如何去应用这时候面试官会问你你在哪些场景会用到AOP你是怎么用的呢  Spring中的AOP实现 Spring AOP是基于代理的它可以通过动态代理或CGLIB代理来实现。常见的使用场景包括 事务管理自动处理方法执行前后事务的提交与回滚。日志记录在方法调用前后自动记录日志。性能监控监控方法执行的时间。 你可以说我之前的项目在写日志的时候用到过。。。。自己去查怎么用的不想全写写一个日志的吧 1创建要执行业务的方法 import org.springframework.stereotype.Service;Service public class MyService {public void processData() {System.out.println(吃饭干饭);}public void saveData() {System.out.println(睡觉);} }2定义日志切面Aspect import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.aspectj.lang.annotation.After; import org.springframework.stereotype.Component;Aspect Component public class LoggingAspect {// 记录方法调用前的日志Before(execution(* com.example.service.MyService.*(..)))public void logBefore(JoinPoint joinPoint) {System.out.println(Before method: joinPoint.getSignature().getName());}// 记录方法调用后的日志After(execution(* com.example.service.MyService.*(..)))public void logAfter(JoinPoint joinPoint) {System.out.println(After method: joinPoint.getSignature().getName());} }Aspect标记该类为一个切面类Spring会自动识别并将它作为AOP配置的一部分。Component使切面类成为Spring容器的一个组件这样Spring可以自动管理它。Before表示在目标方法执行之前执行logBefore方法。execution(* com.example.service.MyService.*(..))是一个切点表达式表示我们要在MyService类中的所有方法执行前记录日志。After表示在目标方法执行之后执行logAfter方法。 JoinPoint 是AOP框架中的一个重要对象表示方法执行的连接点它可以获取方法的签名、参数等信息。 3配置Spring AOP 如果你使用的是Spring BootSpring AOP默认已启用无需额外配置。如果是传统的Spring项目确保在applicationContext.xml中启用AOP支持 !-- 启用AOP支持 -- aop:aspectj-autoproxy /!-- 配置切面 -- bean idloggingAspect classcom.example.aspect.LoggingAspect /4测试。。。 在Spring中IOC和AOP通常是一起使用的。IOC负责管理对象的创建与依赖注入而AOP则提供了一种机制用于在不改变业务逻辑的前提下增加额外的功能如日志、事务管理等 2.SpringBoot常用注解有哪些 RestControllerController 和 ResponseBody 的组合注解 RestController public class UserController {GetMapping(/users)public ListUser getUsers() {return userService.getAllUsers();}PostMapping(/users)public void createUser(RequestBody User user) {userService.createUser(user);} }Autowired、. Component / Service / Controller Value 用途用于注入来自 application.properties 或 application.yml 文件中的配置值。可以注入字符串、数字、布尔值等基本类型的数据。 Value(${server.port}) private String serverPort;Transactional 用途声明方法或类的事务管理确保在方法执行过程中发生的所有数据库操作要么全部成功要么全部失败回滚。 CrossOrigin 用途用于启用跨域支持允许其他域名的客户端访问本应用程序。通常用于 REST API 服务中。 EnableScheduling 用途用于启用 Spring 的任务调度功能可以让 Spring Boot 应用程序支持定时任务。 EnableScheduling public class SchedulerConfig {Scheduled(fixedRate 5000)public void task() {System.out.println(This task runs every 5 seconds);} }3.什么情况下事务会失效 1访问权限问题private修饰方法这样会导致事务失效spring 要求被代理方法必须是public的。 2方法用 final 修饰  3方法内部调用有时候我们需要在某个 Service 类的某个方法中调用另外一个事务方法 具体查看 spring 事务失效的 12 种场景_spring 截获duplicatekeyexception 不抛异常-CSDN博客
http://www.hkea.cn/news/14578000/

相关文章:

  • ppt模板免费下载网站有哪些企业管理系统项目简介怎么写
  • 化妆品网站下载网站开发报告多少页合适
  • 专做电子产品评测的网站开发人员选项
  • 法律网站建设实施方案如何制作一个手机网站源码
  • 低价网站制作网站运营推广该如何做
  • 网站开发工程师缺口大宅装修
  • 门户网站建设网络推广建设一个网站的设备
  • 科技创新网站建设策划书咸阳专业网站开发哪家好
  • 网站正在努力建设中建设行业管理信息系统官网
  • 企业网站的开发ueditor 上传wordpress
  • 佛山网站建设慕枫app界面设计一页多少钱
  • 建设网站一般要多钱怎样建设自己的网站
  • 深圳网站建设网泰安网络科技有限公司电话
  • 拓者室内设计论坛官方网wordpress 性能优化
  • 祥云平台 网站建设fsockopen wordpress
  • 网站后台管理系统ie8用不了郑州航空港区建设局网站
  • 北京建设工程网站中国建设人才网证书查询网址多少
  • 网站公司架构花瓣设计网站官网入口
  • 分布式加载网站的静态9 12米农村自建房设计图
  • 石家庄工信部网站备案做网站最多的行业
  • 国内个人网站2023企业所得税300万以上
  • 咨询服务网站源码手机端网页设计规范
  • 潍坊知名网站建设怎么收费平面设计接单报价表
  • 网站开发公司网站官网网站怎么挖掘关键词
  • 做网站用go语言还是phpwordpress 文章跳转
  • 百度站长提交网址桂林市教育局
  • 网站模板 在哪购买wordpress 播放音频
  • 退役军人事务部网站建设红阳建设集团网站
  • 东莞企业做网站泰安网站建设工作室
  • 怎么建立自己的自媒体平台wordpress js优化