(知识目录)
一、前言本文主要介绍spring中关于解开发的知识
第二,内容1。注释开发定义bean步骤1.使用@component注释定义bean的名称2.contextt在核心配置文件中使用:component-Scan标签扫描组件3.验证bean是否创建可以看出,BoookDaoimpl类中的重写方法出现在操作结果中,表明使用@Component注释定义bean是成功的。
等价写法spring提供三个衍生等价注解@component注解@Repository @Service @controller分别对应dao层、service层和controler层。注:注释中没有写bean的名字时,只能通过类型获得bean,此时要保证这类bean是唯一的
2.纯注释开发步骤1.编写配置类
@Configuration@ComponentScan("demo3.service")public class SpringConfig {}
用@componentScan注释代替配置文件中的默认内容,用@componentScan注释代替contextion:component-scan标签。2.加载配置类,获取bean。
public class App_2 { public static void main(String[] args) { ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class); // 加载配置,AnnnotationconfigAplicationcontext类 BookService service = context.getBean(BookService.class); // 获取bean service.bookSerSay(); }}
运行结果3.如果要扫描多个包,@ComponentScan的值采用字符串数组的形式
3.注释bean的作用范围和生命周期函数的作用范围使用@Scope注释bean的作用范围
生命周期函数使用@Postconstructor注释自定义初始化函数和销毁函数定义初始化函数;定义销毁函数 使用@Predestroy注释。
@PostConstruct public void init() { System.out.println("init"); } @PreDestroy public void destroy() { System.out.println("destroy"); }
注:Java9之后,这两个注释已经被淘汰。要使用这两个注释,首先是pom.在xml中加入依赖:
<!-- java注释相关依赖--> <dependency> <groupId>javax.annotation</groupId> <artifactId>javax.annotation-api</artifactId> <version>1.3.2</version> </dependency>
让我们来看看主类和运行结果
4.依靠注入自动组装和阅读properties文件阅读properties文件的内容。首先,在配置类别中,使用@propertysource注释来告知spring有哪些文件
5.第三方bean管理步骤(以DruidataSource为例)1.在pom.Druid坐标导入xml
<!-- druid连接池--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.2.0</version> </dependency>
2.在配置类中写下要获得的对象类型的方法(在方法中添加@Bean注释)
@Configuration@ComponentScan({"demo3.service","demo3.controller","demo3.dao"})public class SpringConfig { @Bean public DataSource dataSource() { DruidDataSource dataSource = new DruidDataSource(); dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver"); dataSource.setUrl("mysql:jdbc://localhost:3306/daily?useSSL=false"); dataSource.setUsername("root"); dataSource.setPassword("@123456"); return dataSource; }}
三、获取bean
public class App_5 { public static void main(String[] args) { ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class); DataSource dataSource = context.getBean(DruidDataSource.class); ////通过方法的返回值类型获得这个bean System.out.println(dataSource); }}
4.检查操作结果可见第三方bean对象已成功创建
注意事项1.一般情况下,JDBC配置信息不会放在spring配置类中,而是新建JDBConfig类2.在SpringConfig中使用@Import注解导入此类操作结果与上述操作结果一致。如果不使用@Import注释,则需要在Jdbconfig类别上添加@configuration注释,并在Springconfig类别上的@componentscan注释中添加此config包。
3.@Import注释只能使用一次。如果需要导入多个配置类,则需要使用数组格式
6.第三方bean依赖注入如果没有形参这种类型的bean,就会报错。
7.对比xml配置和注释配置三、结语本文主要介绍:
如何在spring中使用@component注释开发,以及@component注释三个衍生注释;不使用配置文件,使用配置注释开发;bean的作用范围@Scope和声明周期函数@Postconstructor和@PreDestroy;@Autowired和@Value注释分别用于依赖注入中的引用类型和简单类型;如何使用第三方bean和注入依赖,并比较xml和注释的异同。