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

电子元器件在哪个网站上做seo优化需要多少钱

电子元器件在哪个网站上做,seo优化需要多少钱,网站标题上的小图标怎么做的,网站怎么做熊掌号前言 在Java后端开发领域,SSM(SpringSpringMVCMyBatis)框架组合和SpringBoot是面试中的必考知识点。本文将系统整理这些框架在面试中常见的基础、中等和底层问题,帮助开发者全面准备面试。文章内容涵盖核心概念、使用技巧以及源码层面的解析&#xff0c…

前言

在Java后端开发领域,SSM(Spring+SpringMVC+MyBatis)框架组合和SpringBoot是面试中的必考知识点。本文将系统整理这些框架在面试中常见的基础、中等和底层问题,帮助开发者全面准备面试。文章内容涵盖核心概念、使用技巧以及源码层面的解析,适合不同层次的开发者阅读参考。

一、Spring框架基础问题

1. Spring核心概念

问题:什么是IoC和DI?它们有什么区别?

IoC(Inversion of Control,控制反转)是一种设计原则,将对象的创建和管理权从应用程序代码转移到容器。DI(Dependency Injection,依赖注入)是IoC的一种实现方式,通过构造函数、setter方法或接口注入依赖对象。

区别:

  • IoC是设计思想,DI是实现方式

  • IoC强调控制权的反转,DI强调依赖关系的注入方式

问题:Spring中Bean的作用域有哪些?

  1. singleton(默认):每个Spring容器中一个Bean定义对应一个实例

  2. prototype:每次请求都创建新实例

  3. request:每个HTTP请求创建一个实例

  4. session:每个HTTP会话创建一个实例

  5. application:每个ServletContext生命周期内一个实例

  6. websocket:每个WebSocket会话一个实例

2. Spring AOP基础

问题:解释AOP及其核心概念

AOP(Aspect-Oriented Programming)面向切面编程,用于将横切关注点(如日志、事务)与业务逻辑分离。

核心概念:

  • Aspect(切面):跨多个类的模块化关注点

  • Join point(连接点):程序执行过程中的点,如方法执行

  • Advice(通知):在连接点执行的动作

  • Pointcut(切入点):匹配连接点的谓词

  • Target object(目标对象):被一个或多个切面通知的对象

  • Weaving(织入):将切面与其他应用类型或对象连接的过程

二、SpringMVC基础问题

1. 核心流程

问题:描述SpringMVC请求处理流程

  1. 用户发送请求到前端控制器DispatcherServlet

  2. DispatcherServlet调用HandlerMapping确定请求对应的Controller

  3. DispatcherServlet将请求分发给确定的Controller

  4. Controller处理请求并返回ModelAndView对象

  5. DispatcherServlet调用ViewResolver解析视图

  6. View渲染数据并返回给客户端

2. 常用注解

问题:SpringMVC常用注解及其作用

  • @Controller:标识一个类作为控制器

  • @RequestMapping:映射URL到控制器方法

  • @RequestParam:绑定请求参数到方法参数

  • @PathVariable:绑定URL模板变量到方法参数

  • @ResponseBody:直接返回数据而非视图

  • @RestController:组合@Controller和@ResponseBody

  • @ModelAttribute:绑定方法参数或方法返回值到模型

  • @SessionAttributes:声明会话级模型属性

三、MyBatis基础问题

1. 核心概念

问题:#{}和${}的区别是什么?

  • #{}:预编译处理,MyBatis会生成PreparedStatement,能防止SQL注入

  • ${}:字符串替换,直接拼接到SQL中,有SQL注入风险

问题:MyBatis的一级缓存和二级缓存

  1. 一级缓存:

    • SqlSession级别,默认开启

    • 同一个SqlSession中执行相同查询会使用缓存

    • 执行增删改或调用clearCache()会清空缓存

  2. 二级缓存:

    • Mapper级别,需要手动配置

    • 多个SqlSession共享缓存

    • 缓存数据会序列化到磁盘

四、SpringBoot基础问题

1. 核心特性

问题:SpringBoot自动配置原理

  1. @SpringBootApplication组合了@EnableAutoConfiguration

  2. @EnableAutoConfiguration导入AutoConfigurationImportSelector

  3. AutoConfigurationImportSelector加载META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports文件

  4. 条件注解(@Conditional)决定哪些配置类生效

  5. 自动配置Bean被创建并加入应用上下文

问题:SpringBoot starter的作用

Starter是一组依赖描述符,可以一站式添加相关技术所需依赖。它简化了构建配置,开发者只需添加一个starter依赖,就能获得开发特定功能所需的所有依赖。

五、中等难度问题

1. Spring中等问题

问题:Spring事务传播行为有哪些?

  1. REQUIRED(默认):当前有事务则加入,没有则新建

  2. SUPPORTS:当前有事务则加入,没有则以非事务执行

  3. MANDATORY:当前有事务则加入,没有则抛出异常

  4. REQUIRES_NEW:新建事务,挂起当前事务

  5. NOT_SUPPORTED:以非事务执行,挂起当前事务

  6. NEVER:以非事务执行,当前有事务则抛出异常

  7. NESTED:当前有事务则在嵌套事务内执行,没有则新建

问题:Spring如何解决循环依赖?

通过三级缓存解决setter注入的循环依赖:

  1. singletonObjects:存放完全初始化好的Bean

  2. earlySingletonObjects:存放原始Bean(未填充属性)

  3. singletonFactories:存放Bean工厂

解决过程:

  • 创建A时,将A的ObjectFactory放入三级缓存

  • A填充属性时需要B,开始创建B

  • B填充属性时需要A,从三级缓存获取A的ObjectFactory得到A(早期引用)

  • B完成初始化,A得到B完成初始化

2. SpringBoot中等问题

问题:SpringBoot外部化配置加载顺序

  1. 命令行参数

  2. 来自java:comp/env的JNDI属性

  3. Java系统属性(System.getProperties())

  4. 操作系统环境变量

  5. 随机属性(带random.*)

  6. 应用外的application-{profile}.properties或.yml

  7. 应用内的application-{profile}.properties或.yml

  8. 应用外的application.properties或.yml

  9. 应用内的application.properties或.yml

  10. @Configuration类上的@PropertySource

  11. 默认属性(SpringApplication.setDefaultProperties)

六、底层与源码问题

1. Spring底层问题

问题:Spring AOP动态代理实现方式及区别

  1. JDK动态代理:

    • 基于接口实现

    • 通过Proxy.newProxyInstance()创建代理

    • 代理类继承Proxy并实现目标接口

    • 性能较好,但只能代理接口方法

  2. CGLIB代理:

    • 基于类实现

    • 通过继承目标类生成子类

    • 需要引入CGLIB库

    • 可以代理类方法,但final方法不能被代理

    • 创建代理较慢,但执行效率高

问题:Spring Bean生命周期

  1. 实例化Bean(通过构造函数或工厂方法)

  2. 填充属性(依赖注入)

  3. 调用BeanNameAware的setBeanName()

  4. 调用BeanFactoryAware的setBeanFactory()

  5. 调用ApplicationContextAware的setApplicationContext()

  6. 前置初始化(BeanPostProcessor的postProcessBeforeInitialization)

  7. 调用InitializingBean的afterPropertiesSet()

  8. 调用自定义init-method

  9. 后置初始化(BeanPostProcessor的postProcessAfterInitialization)

  10. Bean准备就绪,可使用

  11. 容器关闭时调用DisposableBean的destroy()

  12. 调用自定义destroy-method

2. SpringBoot底层问题

问题:SpringBoot启动过程

  1. 创建SpringApplication实例

    • 推断应用类型(Web/非Web)

    • 加载META-INF/spring.factories中的ApplicationContextInitializer和ApplicationListener

    • 推断主配置类

  2. 执行run方法

    • 准备环境(Environment)

    • 打印Banner

    • 创建应用上下文(AnnotationConfigServletWebServerApplicationContext等)

    • 准备上下文(加载配置源、注册Bean等)

    • 刷新上下文(核心,调用AbstractApplicationContext.refresh())

    • 执行Runners(ApplicationRunner和CommandLineRunner)

问题:SpringBoot内嵌Tomcat原理

  1. 通过spring-boot-starter-web引入Tomcat依赖

  2. SpringBoot自动配置(TomcatServletWebServerFactoryAutoConfiguration)创建ServletWebServerFactory

  3. WebServerFactoryCustomizerBeanPostProcessor后置处理器定制服务器

  4. DispatcherServletAutoConfiguration注册DispatcherServlet

  5. 启动时通过ServletWebServerApplicationContext创建并启动Tomcat

七、综合实战问题

问题:如何设计一个RESTful API并考虑异常处理、安全性和性能?

  1. RESTful设计:

    • 合理使用HTTP方法(GET/POST/PUT/DELETE)

    • 资源命名规范(/users/{id})

    • 合适的状态码(200/201/400/404等)

    • HATEOAS支持

  2. 异常处理:

    • 使用@ControllerAdvice全局异常处理

    • 自定义异常和错误码

    • 统一响应格式

  3. 安全性:

    • 使用Spring Security

    • HTTPS加密

    • 认证(JWT/OAuth2)

    • 防CSRF/XSS/SQL注入

  4. 性能:

    • 缓存(Spring Cache/Redis)

    • 异步处理(@Async)

    • 分页查询

    • 压缩响应

    • 连接池配置

结语

掌握SSM和SpringBoot框架不仅需要了解基本用法,还需要深入理解其设计思想和实现原理。面试前建议结合实际问题动手实践,阅读部分核心源码,这样在回答问题时才能游刃有余。本文整理的问题涵盖了大部分面试场景,但技术不断发展,建议持续关注框架的最新动态和最佳实践。

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

相关文章:

  • 专门做餐饮运营的网站服装营销方式和手段
  • 安徽省政府网站官网影视后期培训班一般要多少钱
  • 工具型网站有哪些seo排名推广
  • 做文案用什么网站2023广州疫情最新消息今天
  • 网站简单设计厦门网站搜索引擎优化
  • 网站搭建服务器配置大数据统计网站
  • 云平台开发网站seo实战视频
  • 互联网o2o是什么意思seo能从搜索引擎中获得更多的
  • 做动画在线观看网站济南网站设计
  • 昆明做网站建设的公司排名网络推广文案怎么写
  • 做网站公司还有没有活路免费软文推广平台都有哪些
  • 学院网站建设情况百度站长提交网址
  • 手机网站怎么切图网络营销策略的内容
  • 公司网站设商丘seo博客
  • 在什么网站能帮人做ppt百度下载安装最新版
  • 阿里云服务器做网站好用吗郑州seo外包
  • 大学班级网站建设市场调研模板
  • 北京建设门户网站百度推广好不好做
  • 北京网站建设yi wl网站注册账号
  • 天津市建设网站太原seo排名
  • 中国建设银行登录入口seo优化自动点击软件
  • 临沂网站建设公司全国成都网站优化及推广
  • 网站开发从零到上线外贸做网站公司哪家好
  • 安阳网红打卡地富阳网站seo价格
  • axure怎么做长页面网站游戏挂机赚钱一小时20
  • 做网站java网站怎么做
  • 怎么做钓鱼网站建立网站的详细步骤
  • 网站建好后维护麻烦吗个人网站模板免费下载
  • 做模板网站的公司知名品牌营销案例100例
  • 网站建设公司哪家强百度竞价关键词