Spring-快速开发之注解开发
发布日期:2022-02-10 11:36:57 浏览次数:43 分类:技术文章

本文共 2472 字,大约阅读时间需要 8 分钟。

注解只不过是一个标记,存储了少量的内容信息,具体功能是由具体的框架实现

常用注解

启动注解功能

启动注解扫描,加载类中配置的注解项

bean的定义

  • 名称:@Component @Controller @Service @Repository
  • 类型:类注解
  • 位置:类定义上方
  • 举例:
@Componentpublic class ClassName{
}

加载地第三方资源,bean的非引用类型属性注入

名称:@Bean

  • 类型:方法注解
  • 位置:方法定义上方
  • 作用:设置该方法的返回值作为spring管理的bean

名称:@Value

  • 类型:属性注解、方法注解
  • 位置:属性定义上方,方法定义上方
  • 作用:设置对应属性的值或对方法进行传参

范例:

@Componentpublic class JdbcConfig {
@Value("${jdbc.driver}") private String driver; @Value("${jdbc.url}") private String url; @Value("${jdbc.username}") private String username; @Value("${jdbc.password}") private String password; @Bean public DataSource getDataSource(){
System.out.println(driver); DruidDataSource dataSource = new DruidDataSource(); dataSource.setDriverClassName(driver); dataSource.setUrl(url); dataSource.setUsername(username); dataSource.setPassword(password); return dataSource; }}

bean的引用类型属性注入

名称:@Autowired、@Qualifier

  • 类型:属性注解、方法注解
  • 位置:属性定义上方,方法定义上方
  • 作用:设置对应属性的对象或对方法进行引用类型传参
  • 范例
@Autowired(required = false)@Qualifier("userDao")private UserDao userDao;//@Autowired默认按类型装配,指定@Qualifier后可以指定自动装配的bean的id//required:定义该属性是否允许为null

加载properties文件

名称:@PropertySource

  • 类型:类注解
  • 位置:类定义上方
  • 作用:加载properties文件中的属性值
  • 范例:
@PropertySource(value = "classpath:filename.properties")public class ClassName {
@Value("${propertiesAttributeName}")private String attributeName; }//不支持*通配格式,一旦加载,所有spring控制的bean中均可使用对应属性值/*相关属性 value(默认):设置加载的properties文件名 ignoreResourceNotFound:如果资源未找到,是否忽略,默认为false*/

纯注解格式

名称:@Configuration、@ComponentScan

  • 类型:类注解
  • 位置:类定义上方
  • 作用:设置当前类为spring核心配置加载类
  • 范例:
@Configuration@ComponentScan("scanPackageName")public class SpringConfigClassName{
}/* 核心配合类用于替换spring核心配置文件,此类可以设置空的,不设置变量与属性 bean扫描工作使用注解@ComponentScan替代*/

AnnotationConfigApplicationContext

  • 加载纯注解格式上下文对象,需要使用AnnotationConfigApplicationContext

    AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(SpringConfig.class);

第三方bean配置与管理

名称:@Import

  • 类型:类注解
  • 位置:类定义上方
  • 作用:导入第三方bean作为spring控制的资源
  • 范例:
@Configuration@Import(OtherClassName.class)public class ClassName {
}/* @Import注解在同一个类上,仅允许添加一次,如果需要导入多个,使用数组的形式进行设定 在被导入的类中可以继续使用@Import导入其他资源(了解) @Bean所在的类可以使用导入的形式进入spring容器,无需声明为bean*/

依赖加载

名称:@Order

  • 类型:配置类注解
  • 位置:配置类定义的位置(类上)
  • 作用:控制配置类的加载顺序
  • 范例:
@Order(1)	public class SpringConfigClassName {
}

名称:@Lazy

  • 位置:类注解、方法注解
  • 作用:控制bean的加载时机,使其延迟加载
  • 范例:
@Lazypublic class ClassName {
}

程序运行流程

  1. 加载配置文件
  2. 添加bean到容器中
    1. 解析bean标签
    2. 解析相关注解
    3. @Bean
  3. bean加载完成即可运行业务程序

转载地址:https://blog.csdn.net/drug1910951117/article/details/107507692 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Spring-IOC知识点整理
下一篇:jackson.databind.exc.InvalidDefinitionException:NoSerializerFoundForClassCom.project.domain.Account

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月02日 16时59分45秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章