您的位置:首页 > 财经 > 产业 > 哔哩哔哩视频免费视频大全_湖南做网站价格_seo官网优化_百度推广公司哪家比较靠谱

哔哩哔哩视频免费视频大全_湖南做网站价格_seo官网优化_百度推广公司哪家比较靠谱

2025/4/22 20:06:37 来源:https://blog.csdn.net/qq_65879241/article/details/147374451  浏览:    关键词:哔哩哔哩视频免费视频大全_湖南做网站价格_seo官网优化_百度推广公司哪家比较靠谱
哔哩哔哩视频免费视频大全_湖南做网站价格_seo官网优化_百度推广公司哪家比较靠谱

今天是2025/0420 19:44 day 21

总路线请移步主页Java大纲相关文章

今天进行Spring 1,2,3 个模块的归纳

最近在忙毕设,更新有点慢,见谅

首先是Spring 的相关内容概括的思维导图

一、核心概念详解

1. IoC容器

1.1 工作原理
// 典型使用示例
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
UserService userService = context.getBean(UserService.class);
1.2 依赖注入方式对比
方式优点缺点
构造器注入不可变对象,强依赖参数多时代码臃肿
Setter注入灵活性高对象可能处于部分初始化状态
字段注入代码简洁难以测试,隐藏依赖关系
1.3 注解驱动开发
@Configuration
public class AppConfig {@Bean public DataSource dataSource() {return new DriverManagerDataSource(...);}
}

2. AOP编程

2.1 核心概念图解
[业务组件] --交叉关注点--> [日志/事务/安全]\                  /\                /[AOP代理层]
2.2 通知类型示例
@Aspect
public class LogAspect {@Before("execution(* com.example.service.*.*(..))")public void logBefore(JoinPoint jp) {System.out.println("方法调用前: " + jp.getSignature());}@Around("@annotation(com.example.Monitor)")public Object monitorPerformance(ProceedingJoinPoint pjp) throws Throwable {long start = System.currentTimeMillis();Object result = pjp.proceed();System.out.println("方法执行耗时: " + (System.currentTimeMillis()-start));return result;}
}

二、Spring容器深度解析

1. Bean生命周期全流程

1. 实例化 → 2. 属性填充 → 3. BeanNameAware → 4. BeanFactoryAware↓
5. PreInitialization(BeanPostProcessor) → 6. @PostConstruct↓
7. InitializingBean → 8. 自定义init-method → 9. PostInitialization

2. 作用域对比实验

@Scope("prototype")
@Bean
public PrototypeBean pb() { return new PrototypeBean(); }
​
// 测试代码:
PrototypeBean b1 = context.getBean(PrototypeBean.class);
PrototypeBean b2 = context.getBean(PrototypeBean.class);
System.out.println(b1 == b2);  // 输出false

3. 条件化配置

@Conditional(ProdEnvCondition.class)
@Bean
public DataSource prodDataSource() {return new ProductionDataSource();
}
​
public class ProdEnvCondition implements Condition {@Overridepublic boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {return "prod".equals(context.getEnvironment().getProperty("env"));}
}

三、Spring MVC全流程剖析

1. 请求处理时序图

HTTP Request → DispatcherServlet → HandlerMapping → Controller → 
ModelAndView → ViewResolver → View → HTTP Response

2. 控制器开发模式

2.1 传统控制器
@Controller
@RequestMapping("/users")
public class UserController {@GetMapping("/{id}")public String getUser(@PathVariable Long id, Model model) {model.addAttribute("user", userService.findById(id));return "userDetail";}
}
2.2 RESTful风格
@RestController
@RequestMapping("/api/users")
public class UserApiController {
​@PostMappingpublic ResponseEntity<User> createUser(@RequestBody @Valid User user) {User saved = userService.save(user);URI location = ServletUriComponentsBuilder.fromCurrentRequest().path("/{id}").buildAndExpand(saved.getId()).toUri();return ResponseEntity.created(location).body(saved);}
}

3. 异常处理机制

@ControllerAdvice
public class GlobalExceptionHandler {@ExceptionHandler(DataNotFoundException.class)@ResponseStatus(HttpStatus.NOT_FOUND)public ErrorResponse handleNotFound(DataNotFoundException ex) {return new ErrorResponse("NOT_FOUND", ex.getMessage());}@ExceptionHandler(MethodArgumentNotValidException.class)public ResponseEntity<Map<String, String>> handleValidationExceptions(MethodArgumentNotValidException ex) {Map<String, String> errors = new HashMap<>();ex.getBindingResult().getAllErrors().forEach(error -> {String fieldName = ((FieldError) error).getField();errors.put(fieldName, error.getDefaultMessage());});return ResponseEntity.badRequest().body(errors);}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com