活动介绍

Spring框架1

preview
需积分: 0 0 下载量 193 浏览量 更新于2022-08-08 收藏 44KB DOCX 举报
【Spring框架1】知识点详解: 1. **Spring AOP(面向切面编程)**:Spring AOP 是一种用于实现横切关注点(如日志、事务管理)的技术,它允许我们在不修改源代码的情况下,向应用程序中添加额外的功能。Spring AOP 采用动态代理织入切面,分为两种代理机制: - **JDK动态代理**:适用于目标类实现了接口的情况,通过`java.lang.reflect.Proxy`创建代理对象。 - **CGLIB动态代理**:如果目标类没有接口,Spring会使用CGLIB库创建目标类的子类,并在子类中织入切面。 2. **线程安全与Action**:Action 类是否线程安全取决于它的设计。如果Action不是线程安全的,可以通过以下方式确保线程安全: - 声明Action为局部变量,每次请求都创建新的实例。 - 在Spring中使用`scope="prototype"`管理Action,确保每个请求对应一个新的Action实例。 3. **Struts关键对象**: - **Action**:作为控制器,负责处理用户请求并调用业务逻辑。 - **ActionForm**:用于封装请求参数,作为业务逻辑层与视图层之间的数据载体。 - **DynaValidatorForm**:动态表单,允许动态指定字段和验证规则。 - **ActionMapping**:存储配置文件中action节点的元数据,定义了请求URL与Action类的映射关系。 4. **AOP和IOC**: - **AOP(面向方面编程)**:关注点分离,将横切关注点(如事务管理)与核心业务逻辑解耦。Spring中,AOP主要应用于切面的声明和实现,例如声明式事务管理。 - **IOC(控制反转)**:对象的创建和依赖关系的管理由容器(如Spring)负责,而不是由对象自身负责。Spring通过依赖注入(DI)实现IOC,主要有三种方式: - 接口注入 - Setter注入 - 构造器注入 5. **Hibernate**: - **load()和get()**: - `load()`:默认开启延迟加载,仅在需要对象属性时查询数据库,若数据库中不存在记录,会抛出`ObjectNotFoundException`。先检查一级缓存,未找到再创建代理对象。 - `get()`:直接尝试从一级缓存、二级缓存或数据库获取对象,找不到则返回`null`。 6. **Hibernate的延迟加载和OpenSessionInView**: - **延迟加载**:在同一个`Session`范围内,只有当需要数据时才加载,以提高性能。 - **OpenSessionInView**:在Web层通过Filter保持`Session`在整个HTTP请求过程中的开放,确保延迟加载能够在正确范围内工作。 7. **Spring事务管理**: - **声明式事务**:通过配置元数据(如XML或注解)来声明事务边界。 - **编程式事务**:直接在代码中调用事务管理API来管理事务。 - **隔离级别**:包括读未提交(READ UNCOMMITTED)、读已提交(READ COMMITTED)、可重复读(REPEATABLE READ)、串行化(SERIALIZABLE),每种级别控制了并发事务间的数据可见性和一致性。 - **传播行为**:定义了在一个事务中的方法如何启动或参与另一个事务,如REQUIRED、SUPPORTS、MANDATORY、REQUIRES_NEW、NOT_SUPPORTED、NEVER和NESTED。 8. **Spring框架优点**: - **分层架构**:各层之间解耦,可以选择性地使用。 - **POJO编程**:提高代码的可测试性和可维护性。 - **依赖注入(DI)**:简化对象之间的依赖关系,降低耦合度。 - **开源免费**:社区活跃,拥有丰富的生态系统。 - **对象管理**:集中化和简化对象的生命周期管理。 以上是对Spring框架核心概念及关键知识点的详细解析,涵盖了AOP、IOC、事务管理、Struts对象和Hibernate操作等内容。
身份认证 购VIP最低享 7 折!
30元优惠券