zoukankan      html  css  js  c++  java
  • Spring学习【Spring】

    Rod Johnson编写

    目标:使J2EE开发变得更加容易,通过启用基于 POJO 编程模型来促进良好的编程实践。

    • 依赖注入(DI)
    • 面向方面的程序设计(AOP):

    常用注入方式

    1. 设值注入(自动调用java类的set方法)
    2. 构造注入(调用java类的构造方法)

    Bean

    id
    Class
    Scope
    Constructor arguments
    Properties
    Autowiring mode
    lazy-inintialization mode
    initialization/destruction method

    Bean 作用域

    1.singleton 单例
    2. peototype 每次请求创建一个新的实例
    3. request
    4. session
    5. global session

    Bean 生命周期

    1. 定义
    2. 初始化
    3. 使用
    4. 销毁

    init方法、destroy方法

    配置全局默认初始化、销毁例子。

    Spring Aware
    通过Aware接口,可以对Spring相应资源进行操作(一定要慎重)

    ApplicationContextAware
    BeanFactoryAware

    Bean的自动转配(Autowiring)

    No:不做任何操作
    byname:根据属性名自动装配
    byType:Type的注入和ID并没有什么关系
    Constructor:

    Resources
    针对于资源文件的统一接口

    UrlResource
    ClassPathResource
    FileSystemResource
    ...

    ResouceLoader

    classPath:
    file:
    http:
    none

    Bean管理的注解实现

    ClassPath扫描与组件管理

    @Configuration 配置类
    @Bean           标一个用于配置和初始化一个由SpringIoC容器管理的新对象的方法
                    name、initMethod、destroyMehtod
    @Import
    @Autowired   依赖注入
    
    @Servcie      标注一个业务逻辑组件类
    @Repository   标注一个DAO组件类
    @Controller   标注一个控制器组件类
    @Component    标注一个普通的Spring Bean类
    
    @Resource
    

    元注解,基于注解,定义注解。

    <context:component-scan base-package="org.example"

    定义Bean@Service

    作用域@Scope("Prototype") 表示每一次请求都会创建一个新的对象
    @Required 注解适用于bean属性的setter方法
    @Autowired 注解为“传统”的setter方法
    @Qualifier 按类型自动装配可能多个bean实例的情况,可以使用Qualifier注解缩小范围(或指定唯一)
    @Bean 标一个用于配置和初始化一个由SpringIoC容器管理的新对象的方法
    @ImportResource 用于加载资源文件,用于将变量注解。

    基于泛型的自动装配


    AOP
    AOP(Aspect Oriented Programming)
    通过预编译方式和运行期动态代理实现程序功能的
    统一维护的一种技术。

    1. 预编译(AspectJ)
    2. 运行期动态代理(JDK动态代理,CGLib动态代理)

    作用

    1. 提供了声明式的企业服务器,替代EJB服务
    2. 允许用于定制自己的方面,已完成OOP与AOP的互补使用

    SPring AOP不会与AspectJ竞争。

  • 相关阅读:
    从头学pytorch(十二):模型保存和加载
    Python环境安装与配置
    PyCharm安装及使用
    Python包管理工具pip的基本使用
    LoadRunner安装破解
    正则表达式提取器使用
    TCPMon使用总结
    JMeter:全面的乱码解决方案
    Jmeter脚本两种录制方式
    监听器-【聚合报告】界面字段解析及计算方法概要说明
  • 原文地址:https://www.cnblogs.com/shengwang/p/9721275.html
Copyright © 2011-2022 走看看