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

有个网站做字的图片qq登录wordpress

有个网站做字的图片,qq登录wordpress,网站建设内页,VPS做镜像网站技术演进与框架对比技术栈核心框架特点与局限性替代原因SSHStruts 1.x Spring 1.x HibernateXML配置繁琐,Struts安全性差,Hibernate性能调优复杂开发效率低,维护成本高SSH2Struts 2.x Spring 2.x Hibernate/MyBatisStruts2漏洞多&#xf…

技术演进与框架对比

技术栈核心框架特点与局限性替代原因
SSHStruts 1.x + Spring 1.x + HibernateXML配置繁琐,Struts安全性差,Hibernate性能调优复杂开发效率低,维护成本高
SSH2Struts 2.x + Spring 2.x + Hibernate/MyBatisStruts2漏洞多,Hibernate学习曲线陡峭安全风险,ORM灵活性不足
SSMSpringMVC + Spring 3.x + MyBatis轻量级,MyBatis SQL可控,但XML配置仍冗余需简化配置
SpringBoot内嵌Web容器 + 自动化配置约定优于配置,零XML,快速启动微服务时代开发效率需求

SpringBoot核心优势

  1. 启动器(Starters)

    • spring-boot-starter-web:整合Tomcat + SpringMVC
    • spring-boot-starter-data-jpa:简化JPA操作
    • 原理:通过Maven依赖传递自动装配所需库(spring-boot-autoconfigure
  2. 主启动类

    @SpringBootApplication // 组合注解:@Configuration + @EnableAutoConfiguration + @ComponentScan
    public class App {public static void main(String[] args) {SpringApplication.run(App.class, args); // 启动嵌入服务器}
    }
    

依赖注入深度优化

注入方式对比
方式代码示例适用场景推荐度
构造器注入public UserService(@Autowired UserRepo repo) { ... }强不变性,避免NPE★★★★★
Setter注入@Autowired public void setRepo(UserRepo repo) { ... }可选依赖★★★☆☆
字段注入@Autowired private UserRepo repo;快速原型开发★☆☆☆☆
自动装配策略
// 1. 按类型匹配(默认)
@Autowired
private DataSource primaryDataSource;// 2. 按名称匹配(解决冲突)
@Autowired 
@Qualifier("backupDataSource")
private DataSource secondaryDataSource;// 3. 构造函数隐式注入(Spring 4.3+)
@Service
public class UserService {private final UserRepo repo; // 无需@Autowiredpublic UserService(UserRepo repo) { this.repo = repo; }
}

:推荐使用jakarta.annotation.Resource(JSR-250标准)替代@Autowired

@Resource(name = "mysqlDataSource") // 先按名称,再按类型
private DataSource dataSource;

Controller层最佳实践

路由映射优化
@RestController // = @Controller + @ResponseBody
@RequestMapping("/api/v1/users") // 统一前缀
public class UserController {@GetMapping(produces = MediaType.APPLICATION_JSON_VALUE)public List<User> listUsers() { ... }  // GET /api/v1/users@PostMapping(consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)public ResponseEntity<User> createUser(@RequestParam String name) { ... }@GetMapping("/{id}")public User getUser(@PathVariable Long id) { ... } // GET /api/v1/users/1001@DeleteMapping("/{id}")@ResponseStatus(HttpStatus.NO_CONTENT) // 204状态码public void deleteUser(@PathVariable Long id) { ... }
}
参数绑定进阶
参数类型注解示例
URL路径参数@PathVariable@PathVariable("id") Long userId
请求参数@RequestParam@RequestParam(defaultValue="0") int page
JSON请求体@RequestBody@RequestBody UserDTO user
请求头@RequestHeader@RequestHeader("Authorization") String token
Cookie值@CookieValue@CookieValue("JSESSIONID") String sessionId

响应处理策略

  1. RESTful响应标准化

    @GetMapping("/{id}")
    public ResponseEntity<ApiResponse<User>> getUser(@PathVariable Long id) {User user = userService.findById(id);return ResponseEntity.ok().header("Cache-Control", "max-age=3600").body(ApiResponse.success(user));
    }
    
  2. 全局异常处理

    @RestControllerAdvice
    public class GlobalExceptionHandler {@ExceptionHandler(EntityNotFoundException.class)@ResponseStatus(HttpStatus.NOT_FOUND)public ApiResponse<Void> handleNotFound(EntityNotFoundException ex) {return ApiResponse.error(404, ex.getMessage());}
    }
    

SpringBoot在微服务中的角色

  1. 服务治理
    • 集成Spring Cloud:Eureka(服务注册发现)、Ribbon(负载均衡)、Hystrix(熔断器)
  2. 配置中心
    • spring-cloud-starter-config:集中管理多环境配置
  3. 监控端点
    • Actuator:/actuator/health/actuator/metrics 提供运行时指标

关键设计原则

  1. 控制反转(IoC)
    • 容器管理Bean生命周期(BeanFactory接口)
  2. 依赖注入(DI)
    • 实现解耦,符合单一职责原则
  3. 约定优于配置
    • 默认配置:src/main/resources/application.yml
    • 自动扫描路径:主类所在包及其子包

警示:避免滥用@Autowired,优先使用构造函数注入保证组件不可变性和可测试性。

http://www.dtcms.com/a/533372.html

相关文章:

  • 005-Spring AI Alibaba Structured Output 功能完整案例
  • 私密性最好的浏览器营销网站优化推广
  • 电商网页精品欣赏网站企业管理培训课程机构
  • 中国住房建设网官方网站博客主题 wordpress
  • TVM | TupleNode / TupleGetItemNode
  • 什么做网站统计好杭州百度网站建设
  • 一流的网站建设与优化wordpress更改上传
  • now9999网站提示建设中网站制作怎么做下拉菜单
  • 深度学习周报(10.20~10.26)
  • 通用抓取算法AnyGrasp(Graspnet)——本地部署并测试自定义输入数据
  • 1.2.2 大数据方法论与实践指南-数据助力业务场景
  • php做的直播网站烟台网站制作这
  • 1.模拟算法
  • 昆明优化网站wordpress用户注册插件
  • 若依框架学习Day02:功能改造与问题攻坚实战
  • 如何建设销售型企业网站锦州哪家做网站
  • 二叉树的最大深度-力扣
  • 悟空建站seo服务电商网站 网站服务内容
  • 域名打不开原来的网站官网域名改版方案
  • importlib.import_module(module).__dict__[class_name]
  • 宁波企业网站制作河南优化网站
  • 媒体网站 建设网络强国网站推广软件app
  • 三维视觉:原理与实践(课程笔记-相机模型与标定)
  • C++进阶:(一)深入理解继承机制
  • 南通网站建设服务公司公司签约网站
  • 网站后台开发做什么网站主体负责人能查询到吗
  • chp04【组队学习】Post-training-of-LLMs
  • 摄像机数据对象存储S3测试 之RustFS
  • web识别开发,在线%老版本图像识别和分类%系统开发,基于html,css,jquery,python,flask,cnn,opencv,无数据库
  • Vue项目配置cdn