一、常用注解认知与使用
(项目中使用次数最多,次数使用一般)
ID | 注解 | 注释 | 作用域 |
---|---|---|---|
1001 | @Configuration | 设置当前类为配置类 | 配置类上方 |
1002 | @ComponentScan({"com.yh.dao"}) | 设定扫描路径,多个路径用数组{} | 配置类上方 |
1003 | @Component() | 用来定义bean | 实体类、实现类上方 |
1004 | @Controller() | 用途和1003一样,用来表示表现层的bean定义 | 实体类、实现类上方 |
1005 | @Repository() | 用途和1003一样,用来表示数据层的bean定义 | 实体类、实现类上方 |
1006 | @Service() | 用途和1003一样,用来表示业务层的bean定义 | 实体类、实现类上方 |
1007 | @Autowired | 是一个注释,它可以对类成员变量、方法及构造函数进行标注,让 spring 完成 bean 自动装配的工作。 | 成员变量、构造函数上方 |
1008 | @Qualifier | 多个类型相同的bean时,按名称引用 | 配同1007使用 |
1009 | @Scope("prototype","singleton","request","session") | 切换模式、自定义作用域 | 实体类、实现类上方 |
ID | 注解 | 注释 | 作用域 |
---|---|---|---|
1010 | @PostConstruct | bean生命周期,初始化 | 初始化方法上方 |
1011 | @PreDestroy | bean生命周期,销毁(非单例模式下,不可用) | 销毁方法上方 |
1012 | @Value("xxx") | 简单注入,给属性赋值 | 变量上方 |
1013 | @PropertySource("xxx.properties") | 加载properties文件 | 配置类上方 |
1014 | @Bean | 表示方法返回一个bean对象 | 方法上方 |
1015 | @Import(xxx.class) | 导入其他配置类,注入多个配置类使用数组{} | Spring配置类上方 |
二、注解的使用及操作(上)
Spring纯注解,在开发中占有不错的市场热度,要熟练掌握纯注解开发,建议小伙伴们先了解标签的使用。
注解的原理和定义标签意义相同,但注解大大的提高了工作的效率,提高了代码阅读性,从而标签开发渐渐淡出了我们的视野中。
1001、@Configuration注解的作用及使用
(1)@Configuration:设置当前类为配置类
设置当前类为配置类是什么意思,大家应该还记得xml文件是有标签头和标签尾,而@Configuration就是代表Spring标签的头和尾。
也就是说@Configuration和下图是一个意思,当我们配置了@Configuration,就是说我们没必要依赖Spring.xml了。
(2)在使用前我们先导入maven相关的坐标,并将我们所需的包创建出来。
加载好相关依赖后,我们去想一下,我们不用xml,那么我们还需要写配置文件吗?答案是需要,只不过我们给它换了种形式,我们不再需要写配置文件xml了,但需要一个配置类去代替xml,而这个配置类的表示就是@Configuration注解。
我们对比一下上面两张图,哪个简单,哪个可观性更高?
1002、@ComponentScan注解的作用及使用
(1)@ComponentScan注解是用来扫描某路径下的bean对象,它代表我们标签中的< bean class="com.yh.dao"/>。
(2)使用方式
1003、@Component注解的作用及使用
(1)@Component:用来定义bean对象。
(2)假如我们有个学生接口,我们可以在实现类中用@Component表示类对象来操作相对应的方法。
1.按类型注入bean(@Component and @Component() )
测试:
2.按名称注入bean
测试:
1004、@Controller注解的作用及使用
(1)@Controller:用法和@Component一样,用来表示表现层的bean定义,使我们更加清晰代码bean属于那个层的,功能一模 一样,用法也是,只是为了帮我们去理解。
(2)将@Component换成@Controller即可。
1005、@Repository注解的作用及使用
(1)@Repository:用法和@Component一样,用来表示数据层的bean定义,使我们更加清晰代码bean属于那个层的,功能一模 一样,用法也是,只是为了帮我们去理解。
(2)将@Component换成@Repository即可。
1006、@Service注解的作用及使用
(1)@Service:用法和@Component一样,用来表示业务层的bean定义,使我们更加清晰代码bean属于那个层的,功能一模一 样,用法也是,只是为了帮我们去理解。
(2)将@Component换成@Service即可。
1007、@Autowired注解的作用及使用
(1)@Autowired:用于自动装配。
(2)使用于多个bean的引入。
测试:
1008、@Qualifier注解的作用及使用
(1)@Qualifier用于引入指定bean,它是与@Autowired一起使用,不可单独使用。
(2)使用方法
测试:
三、注解的使用及操作(下)
1012、1013、@Value注解的作用及使用
(1)@Value是给属性赋值的。
(2)直接赋值
测试:
(3)通过properties文件赋值
1、创建properties文件
2、加载properties文件
3、给属性赋值
测试:
1014@Bean、1015@Import注解的作用及使用
@Bean是用来管理第三方bean,标注@Bean则该方法返回一个bean对象。
(1)以Druid为例,先创建一个数据库配置类
(2)进行测试
(3)配合properties文件使用
1、先创建一个properties文件
2、加载properties文件
3、给属性赋值
4、测试