Spring

day01

@PostConstruct 注解

会在启动时,所有依赖都已经注入之后,会调用这个方法 (一般用于在你的业务逻辑执行前,Spring的依赖注入执行后,添加一段业务逻辑)

比如:你想在依赖注入后,你执行一个业务之前,还想调用某个方法或者进行某种运算以便你的业务使用,就可以使用这个注解

@PostConstruct
void xxxx(){}

@PreDestroy注解

在关闭时,在销毁Bean实例之前,会调用这个方法,例如关流或者在销毁前要关闭某些东西,在这里处理会比较方便(有助于释放资源和清理)

@PreDestroy
void xxxx(){}

@Stereotype注解

说明:

是 Spring框架的注解

@Service业务类

@Repository数据访问类

@Controller 和 @RestController 是 web类 (SpringMVC)

@Configuration java配置

而以上这5种注解,其实底层都是@Component注解 之所以一样的功能要叫不同的名字,就是为了方便分层

而这些注解,统称为 @Stereotype注解

@Meta(自定义注解)

使用@Target描述注解存在的位置
ElementType.TYPE 应用于类的元素
ElementType.METHOD 应用于方法级
ElementType.FIELD 应用于字段或属性(成员变量)
ElementType.ANNOTATION_TYPE 应用于注解类型
ElementType.CONSTRUCTOR 应用于构造函数
ElementType.LOCAL_VARIABLE 应用于局部变量
ElementType.PACKAGE 应用于包声明
ElementType.PARAMETER 应用于方法的参数
使用@Retention注解描述这个自定义注解的生命周期(被保留的时间的长短)
SOURCE 在源文件中有效(即源文件保留)
CLASS 在class文件中有效(即class保留)
RUNTIME 在运行时有效(即运行时保留)

注解补充

之所以有的注解,例如@Override重写注解,可以写可以不写,效果一样,但是有的注解必须写, 就因为这个Meta

总结:

定义Spring Bean的方式:

显示的:使用@Bean方法

隐式的:使用@Component 和组件扫描 ( @componentScan("") )

大部分应用程序中使用 自己的写的类使用隐式的 其他的类使用显式的

进行初始化和清理

使用:@PostConstruct 和 @PreDestroy

@Autowired

说明:

将使用IOC保存在容器中的Bean对象注入某个属性或者字段中

用法:

可以使用在构造方法上,并且有几个参数就可以注入几个参数,可以注入多个参数(推荐使用在构造方法上) 必须存在唯一的匹配类型的依赖

可以使用在方法上,

可以使用在字段上

注意:不能使用在类上!

自动装配/自动布线 也叫依赖注入 相当于别名

规则:

查找与所需类型匹配的唯一Bean

如果提供了@Qulifer则尝试根据名称查找匹配的Bean

上一篇:数据结构——栈(线性表与链表)


下一篇:习题1.8 二分查找 (20 分)