spring注解

1.spring的介绍 一句化概括就是一个平台,有它能够更加方便集成其他环境

ioc 控制反转: 获取Class反射通过解析xml文件
不用new交给spring容器去创建 使用xml或注解配置类
先有组件才能使用容器去装,激活组件以提供特定的功能

DI 依赖注入:不需要手动调用set 通过反射 配置xml赋值或注解配置类赋值。setter注入(使用xml配置已很少使用),构造器注入,注解注入
依赖注入是控制反转的基础,否则如果在组件不受框架控制的情况下,框架又怎么知道要创建哪个组件?

非侵入式:基于spring开发的应用对象可以不依赖spring的API

aop:面向切面(方法)编程 与后置处理器相关 使用动态代理proxy与cglib代理拦截执行方法

容器:一切依赖于applicationContext,创建一个spring容器

组件化:ioc容器,用来组装不同的资源相互依赖使用。提供高效率的注解开发环境

一站式:胶水 粘合不同内容,spring用来管理所有的组件。声明式事务,springSecurity等

2.注解:
@Configuration 配置类

@Bean 给容器注册一个bean

@ComponentScans(value={数组})
@ComponentScan(value=“包名”,excludeFilter/includeFilter={@Filter=排除规则,classes={数组}}) 包扫描注解及指定排除规则(注解,指定类,自定义)
includeFilter需要加上@useDefaultFilters=false

语义不同而已(规范)
@Repository dao层数据库
@Controller servlet控制前端层
@Service 业务逻辑层
@Component 其他层(例如@Configuration注解力包含了该注解) 将当前类作为组件加入ioc容器中

bean对象默认单实例
ioc容器启动会调用方法创建对象放到ioc容器中,以后每次从容器中(map.get())拿
@Lazy 懒加载:第一次使用再创建对象

@Scope(“prototype”)多实例 一开始不会调用方法创建对象,用到创建

@Conditional 按照条件注册bean

@Import({可以为数组}) 要导入到容器中的组件,ioc容器会自动注册这个组件,id默认是全类名
ImportSelector: 自定义导入组件,实现该接口
ImportBeanDefinitionRegistrar:手动注册bean到容器
FactoryBean :实现该接口,调用getObject()方法创建bean

3.默认加在ioc容器中的组件,容器启动默认调用无参构造器创建对象,在进行初始化赋值等操作

容器管理bean的生命周期:bean创建-初始化(对象赋值创建完成)-销毁(容器关闭,多实例不会管理)
可以自定义初始化和销毁方法 init(),destroy()
@bean(initMethod=init(),destroyMethod=destroy())

@Component
让bean实现实现InitializingBean,DisposableBean接口

@PostConstruct 对象赋值创建完成后执行初始化方法
@PreDestroy ioc容器销毁bean之前通知方法

@Component
实现BeanPostProcessor接口 bean的后置处理器-初始化前后进行处理工作
初始化之前工作 postProcessorBefore
初始化之后工作 postProcessorAfter

底层使用代理对象和AOP编程实现对bean初始化操作

4.使用配置文件配置类注解对属性赋值
@PropertySource(value={}) 读取外部文件的K/V保存到@Value("")

spring框架
自动装配:利用DI依赖注入完成对IOC容器各个组件的依赖关系赋值
@Autowired(required=false) 按类型按组件名区ioc容器中找到注入 标注在属性上,方法,有参构造器,参数上。都从ioc中获取
@Qualifier(“指定组件名id”)
@Primary 首选bean

java规范
@Resource只按主键名id
@Inject 导入依赖同autowired

实现Aware接口

5.标注环境@Proflie(“test”)不同开发环境下使用数据源和方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值