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

海南做网站的公司seo咨询推广

海南做网站的公司,seo咨询推广,长沙做网站kaodezhu,苏州做企业网站有哪些一、Spring Framework 1. IoC容器:依赖管理 Spring的核心是控制反转(IoC),它通过容器管理对象的生命周期和依赖关系。以ApplicationContext为例,其初始化过程涉及Bean定义的加载、解析和实例化: // Bean定…

一、Spring Framework

1. IoC容器:依赖管理

        Spring的核心是控制反转(IoC),它通过容器管理对象的生命周期和依赖关系。以ApplicationContext为例,其初始化过程涉及Bean定义的加载、解析和实例化:

// Bean定义加载过程
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
context.register(AppConfig.class); // 注册配置类
context.refresh(); // 触发BeanFactory的初始化
UserService userService = context.getBean(UserService.class); // 获取Bean

refresh()方法调用AbstractApplicationContext中的obtainFreshBeanFactory(),触发BeanFactory的创建,随后通过BeanPostProcessor对Bean进行增强。

        在Spring框架中,BeanPostProcessor是用于干预Bean创建过程的核心接口。其增强机制主要体现在两个关键阶段:

  1. 初始化前增强 通过实现postProcessBeforeInitialization方法,在Bean的以下生命周期节点介入:
    public Object postProcessBeforeInitialization(Object bean, String beanName) {// 可在此处修改Bean属性值if(bean instanceof MyService) {((MyService)bean).setConfig(defaultConfig);}return bean;
    }

  2. 初始化后增强 通过postProcessAfterInitialization方法,在Bean完成初始化后进行处理。典型应用是创建AOP代理:
    public Object postProcessAfterInitialization(Object bean, String beanName) {if(bean.getClass().isAnnotationPresent(Transactional.class)) {return Proxy.newProxyInstance(...); // 生成事务代理}return bean;
    }

2. AOP:面向切面

        AOP通过动态代理实现日志、事务等通用逻辑的横向切入。以下是一个JDK动态代理的简化实现:

public class JdkDynamicProxy implements InvocationHandler {private Object target;public JdkDynamicProxy(Object target) { this.target = target; }@Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {System.out.println("Before method: " + method.getName());Object result = method.invoke(target, args);System.out.println("After method: " + method.getName());return result;}
}
// 使用代理
UserService proxy = (UserService) Proxy.newProxyInstance(UserService.class.getClassLoader(),new Class[]{UserService.class},new JdkDynamicProxy(new UserServiceImpl())
);

AOP的本质是分离,使得业务逻辑与系统服务(如事务)解耦。

3. 数据访问与事务管理

        Spring通过JdbcTemplate简化JDBC操作,其核心在于模板方法模式的应用:

public class JdbcTemplate {public <T> T query(String sql, ResultSetExtractor<T> extractor) {Connection con = DataSourceUtils.getConnection(dataSource);Statement stmt = con.createStatement();ResultSet rs = stmt.executeQuery(sql);return extractor.extractData(rs); // 回调处理结果集}
}

        事务管理则通过@Transactional注解与AOP结合,利用事务拦截器在方法调用前后开启/提交事务。

二、Spring Boot:约定大于配置

1. 自动装配:条件化Bean加载

        Spring Boot的自动装配基于@Conditional注解族实现。以DataSourceAutoConfiguration为例:

@Configuration
@ConditionalOnClass({DataSource.class, EmbeddedDatabaseType.class}) // 类路径存在时生效
@EnableConfigurationProperties(DataSourceProperties.class) // 绑定配置
public class DataSourceAutoConfiguration {@Bean@ConditionalOnMissingBean // 当用户未自定义DataSource时生效public DataSource dataSource(DataSourceProperties properties) {return properties.initializeDataSourceBuilder().build();}
}

启动流程SpringApplication.run()触发SpringFactoriesLoader加载META-INF/spring.factories中的自动配置类,通过条件判断决定是否生效。

    http://www.dtcms.com/wzjs/108355.html

    相关文章:

  1. 直播网站建设开发今日头条号官网
  2. 长安网站建设制作一个网站的流程有哪些
  3. 网站虚拟主机是什么广告收益平台
  4. java怎么做网站后台友情链接是外链吗
  5. seo网站建设是什么登封网站设计
  6. 高校门户网站建设优化关键词的方法
  7. 西樵做网站seo快速排名上首页
  8. 南岸区网站建设深圳营销型网站建设
  9. 盐城哪有做网站建设的快速优化网站排名的方法
  10. 做网站在哪里买空间域名郑州网站优化外包
  11. 济宁网站建设兼职本溪seo优化
  12. 门户网站应该怎么做免费网站做seo
  13. 网站主页设计模板图片网站管理与维护
  14. 公司做网络推广怎么做网站关键词优化
  15. 做美食网站的目的意义长沙排名优化公司
  16. 广州高端品牌网站建设发稿吧
  17. 网站设计案例软文代写价格
  18. 太原做网站的公司seo研究中心倒闭
  19. 怎么做淘宝优惠卷网站重庆seo结算
  20. wordpress 漫画 主题长春百度seo排名
  21. 如何建立单页网站俄罗斯搜索引擎
  22. 阿里云建设网站流程网站优化的方法
  23. 网站维护费大概多少自动引流免费app
  24. 网站建设公司利润怎么样推广互联网推广
  25. 化妆品 网站建设案例疫情最新动态
  26. dw做的网站不显示怎么做自己的网页
  27. 做电影网站如何买版权真实有效的优化排名
  28. 网站建设市场调查报告武汉企业网站推广
  29. wordpress模板在哪个文件夹seo网站推广的主要目的不包括
  30. 响应式网页设计案例实现与分析百度排名优化专家