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

网站同步到新浪微博怎么做企业网站建设可以分为哪些层次

网站同步到新浪微博怎么做,企业网站建设可以分为哪些层次,免费wap网站推荐,手机网站建设论文Spring 框架的底层原理主要包括以下几个方面: 核心容器(IoC 容器) IoC(控制反转)原理 : 依赖注入(DI) :这是 IoC 的实现方式之一。在传统的程序开发中,程序组…

Spring 框架的底层原理主要包括以下几个方面:

核心容器(IoC 容器)

  • IoC(控制反转)原理

    • 依赖注入(DI) :这是 IoC 的实现方式之一。在传统的程序开发中,程序组件自己负责创建和管理其依赖对象,而在 Spring 中,这种依赖关系被反转了。例如,一个 BookService 类依赖于 BookRepository 类来完成书籍数据的持久化操作。在没有 Spring 的情况下,BookService 类需要自己创建 BookRepository 的实例。但在 Spring 中,BookService 不再自己创建这个依赖,而是将这个依赖交给 Spring 容器来管理。我们通过配置文件或者注解来告诉 Spring 容器 BookService 需要 BookRepository 作为依赖,Spring 容器会在运行时将这个依赖注入到 BookService 中。

      // BookRepository.java
      public interface BookRepository {void save(Book book);
      }// BookRepositoryImpl.java
      @Component
      public class BookRepositoryImpl implements BookRepository {@Overridepublic void save(Book book) {// 持久化逻辑}
      }// BookService.java
      @Component
      public class BookService {@Autowiredprivate BookRepository bookRepository;public void addBook(Book book) {bookRepository.save(book);}
      }

      在上面的代码中,@Component 注解用于将 BookRepositoryImplBookService 类标记为 Spring 管理的组件。@Autowired 注解用于自动装配 BookRepository 依赖,在运行时,Spring 容器会将 BookRepositoryImpl 的实例注入到 BookService 中。

    • BeanFactory 和 ApplicationContextBeanFactory 是 Spring IoC 容器的基础,它负责创建和管理 Bean(对象)。ApplicationContextBeanFactory 的子接口,提供了更多的功能,如国际化、事件传播等。在配置文件中定义好 Bean 后,通过 ApplicationContext 加载配置文件并获取 Bean。

      // applicationContext.xml 配置文件示例
      <beans><bean id="bookService" class="com.example.BookService"><property name="bookRepository" ref="bookRepositoryImpl"></property></bean><bean id="bookRepositoryImpl" class="com.example.BookRepositoryImpl"></bean>
      </beans>// 加载配置文件并获取 Bean 示例
      ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
      BookService bookService = context.getBean("bookService", BookService.class);

      AOP(面向切面编程)

    • AOP 基本概念

      • 切面(Aspect) :是一个横切关注点。例如日志记录、事务管理等,这些关注点通常会横跨多个模块或类。在 Spring 中,切面可以是一个类,通过注解的方式定义。

      • 连接点(Join Point) :程序执行过程中明确的点,如方法执行、异常处理等。在 Spring AOP 中,连接点主要是方法执行。

      • 通知(Advice) :在切面的某个特定连接点执行的动作。包括前置通知(在连接点之前执行)、后置通知(在连接点之后执行)等。

      • 切入点(Pointcut) :定义了切面在哪些连接点上执行。通过表达式来指定,如特定的方法签名等。

      • 目标对象(Target Object) :被通知的对象。

      • 代理(Proxy) :Spring AOP 通过代理模式来实现对目标对象的增强。例如,当我们对一个业务类应用 AOP 时,Spring 会创建一个代理对象,代理对象在调用目标方法前后添加我们定义的横切逻辑。

    • 底层原理 :Spring AOP 主要基于动态代理技术。对于实现了接口的类,Spring 会使用 JDK 动态代理;对于没有实现接口的类,Spring 会使用 CGLIB 库来生成代理类。在运行时,当目标对象的方法被调用时,代理会拦截这个调用,按照我们定义的通知类型(如前置通知、后置通知等)来执行相应的横切逻辑,然后再调用原始方法或者在后置通知中处理方法执行后的结果。

      // 切面类示例
      @Aspect
      @Component
      public class LoggingAspect {// 定义切入点,匹配 com.example 包下所有类的所有方法@Pointcut("execution(* com.example..*(..))")public void logPointcut() {}// 前置通知@Before("logPointcut()")public void beforeLogging(JoinPoint joinPoint) {System.out.println("Before method: " + joinPoint.getSignature().getName());}// 后置通知@After("logPointcut()")public void afterLogging(JoinPoint joinPoint) {System.out.println("After method: " + joinPoint.getSignature().getName());}
      }// 目标类
      @Component
      public class BookService {public void addBook(Book book) {// 添加书籍逻辑System.out.println("Adding book: " + book.getTitle());}
      }

      当调用 BookServiceaddBook 方法时,Spring AOP 会根据切面类中的定义,在方法执行前后输出相应的日志信息。

      事务管理

    • 声明式事务管理原理 :Spring 的声明式事务管理主要是基于 AOP 的。通过在配置文件或注解中声明事务规则,Spring 会自动在方法执行前后添加事务相关的代码。例如,当一个方法被标记为事务方法时,Spring 会在方法执行前开启事务,在方法执行成功后提交事务,在方法执行出现异常时回滚事务。

      // application.properties 配置文件中开启事务管理
      spring.datasource.url=jdbc:mysql://localhost:3306/bookdb
      spring.datasource.username=root
      spring.datasource.password=password
      spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver// 配置 JPA
      spring.jpa.hibernate.ddl-auto=update
      spring.jpa.show-sql=true// 业务类示例
      @Service
      @Transactional
      public class BookService {@Autowiredprivate BookRepository bookRepository;public void transferBook(long bookId, String fromUser, String toUser) {// 模拟书籍转移逻辑,开启事务Book book = bookRepository.findById(bookId).orElse(null);if (book != null) {book.setOwner(toUser);bookRepository.save(book);// 模拟可能出现的异常情况if (true) {throw new RuntimeException("Transfer failed");}}}
      }

      在上面的代码中,@Transactional 注解用于声明事务。当 transferBook 方法被调用时,Spring 会开启一个事务。如果方法执行成功,事务提交;如果方法执行过程中出现异常(如这里人为抛出的 RuntimeException),事务回滚。事务管理器会根据配置的事务规则(如传播行为、隔离级别等)来控制事务的执行。


文章转载自:

http://yKAXp694.rpstb.cn
http://qJScxRjb.rpstb.cn
http://X0iVveyU.rpstb.cn
http://GUWbRB1g.rpstb.cn
http://pkZvFrYL.rpstb.cn
http://PYLYi2TW.rpstb.cn
http://zZPvIMqY.rpstb.cn
http://d9MZgvAx.rpstb.cn
http://bN73ZTwC.rpstb.cn
http://ywukKIOE.rpstb.cn
http://jH1yHThJ.rpstb.cn
http://s2PKaAzS.rpstb.cn
http://VqxoIfwf.rpstb.cn
http://aPXhXQVi.rpstb.cn
http://glYnyWHN.rpstb.cn
http://IsgjTFsF.rpstb.cn
http://Q0ezGH7E.rpstb.cn
http://qVFFEuNa.rpstb.cn
http://CRjwTCXB.rpstb.cn
http://T32Uelkg.rpstb.cn
http://l4kC6IJo.rpstb.cn
http://ibQFpNCb.rpstb.cn
http://X2htds3K.rpstb.cn
http://SGOXH94Y.rpstb.cn
http://26OZfBV0.rpstb.cn
http://zk7AWxQX.rpstb.cn
http://r8hUtxDQ.rpstb.cn
http://8lDY7hBE.rpstb.cn
http://3gt3E0AB.rpstb.cn
http://nmWv6x2K.rpstb.cn
http://www.dtcms.com/wzjs/640270.html

相关文章:

  • 洛阳建设工程网站做网站什么空间好
  • 易语言做网站登陆logo免费自动生成器
  • 欧美网站特点seo就业
  • 欧美 手机网站模板下载 迅雷下载 迅雷下载 迅雷下载地址关键词seo服务
  • 百度 站长工具室内设计公司及效果图
  • 万万州州微微网站网站建建设设点开文字进入网站是怎么做的
  • 网站建设哪个比较好影视公司网站模板
  • 中国住房和城乡建设部查询网站6重重庆建设工程信息网官网
  • 免费做会计试题网站全国公共资源交易中心
  • 大连的网站制作公司个人网站设计论文题目
  • 如何建设机关用房管理系统网站内容营销的定义
  • 河北省建设厅正规网站如何做网站导航
  • 东莞网站开发培训哪里有龙华网站建设营销推广
  • 电子商务网站栏目传奇手游996盒子下载
  • 贵阳网站开发哪家好科技与应用
  • 佛山网站建设及推广服务公司外贸圈是什么
  • 北京网站开发公司大全山西常见网站建设推荐优化
  • 深圳官方网站六安网站建设企业
  • 在线教育网站开发找人搭建网站多少钱
  • 网站建设项目中标通知c++网站开发
  • 苏州城乡建设局的网站产品推广广告
  • 网站平台报价模板下载家装效果图设计网站
  • 网站开发使用什么工具网站关键词写在哪里
  • 如何制作自己的网站在里面卖东西江苏建设一体化平台网站
  • 百度网站推广优化工具做网站大型
  • 网站建设及优化心得体会深投建设深圳有限公司
  • 门户手机网站开发重庆网捷网站建设技术有限公司
  • 做电子商务网站的总结dw做网站时怎么改为绝对路径
  • 关于jsp网站开发的最新书籍桂林昨晚发生的新闻
  • 购物网站开发需要什么软件番禺人才网招聘网