spring笔记2——注解开发
注解开发定义bean
在程序开头,用@开头的注解代替applicationContext.xml文件中的bean标签配置内容。
搜索标签属于context命名空间
纯注解开发
在上面的注解开发定义bean中,用@Component代替了<bean>标签,纯注解开发是定义一个类来代替剩余的配置文件,即以下部分:
这部分可以用两句注解来代替。
虽然可以添加多个扫描路径,但常常将路径设置为一个范围较大的包,就不用一个个添加使用了注解定义bean的类所在的位置了(上图中的"com.itheima")。
SpringConfig.class中要import:
而在应用程序中,加载配置文件的语句要变成加载配置类的语句:
注解开发bean作用范围
注解开发bean生命周期
注解依赖注入——自动装配
spring注解功能是为了便利开发,故而对xml配置文件里的一些功能做了阉割。比如依赖注入的功能中,取消了构造器注入和setter注入。只留下了最便捷的自动装配。
(无参构造器也叫无参构造方法,在我们创建类时候,可以不用写构造方法,因为系统会默认给我们提供一个无参构造方法,如果我们自己写了无参构造方法,那么我们这个就将默认的覆盖了。 )
使用@Autowired注解来进行依赖注入时,默认进行按类型注入。
@Autowired可放在任意位置,且不再需要对dao对象的setter方法,因为其使用反射里的倒立反射给dao对象直接加值。
相当于是@Autowired的补充。
也叫做值类型注入。
注解读取properties文件
在SpringConfig.java里加注解:
随后在类文件里以"${}"的形式读取properties里的值:
可以以数组的形式读取多个properties文件:
注解开发管理第三方bean
由于不能把配置注解写在人家的源代码里,只能在配置类里里编程地去配置。
写在spring配置类里如下:
为什么使用DruidDataSource类而不是DataSource接口:因为以下的set方法都是DruidDataSource类独有的方法。
需要写bean的名字的情况不多,经常是拿类型来获取大多数情况完全够用的。 要写就写在@Bean()里。
关于jdbc的配置一般不写在spring的配置类里,而是另创建一个类,有两种写法:
1.在JdbcConfig里加上@Configuration注解,然后在SpringConfig里协商@ComponentScan告诉spring个地址让它去找这个配置:
2.SpringConfig:@Import注解内写上配置类,如果有多个就写上{}数组。
JdbcConfig:不加@Configuration注解
推荐使用第二种,可以精准地看出引入了哪些类。
第三方bean依赖注入
只给形参就完成了依赖注入。想注入哪个类就在形参里写哪个类,因为spring检测到了这个方法在配置第三方bean,便认为应该提供形参,于是在容器里寻找BookDao类型的bean,找到之后就将其自动装配(默认按类型装配)。
以后@Bean要经常用到,因为要整合框架,就会让spring管理别人写的类。如果整合的bean要东西:引用类型用方法形参,简单类型用成员变量。
XML配置与注解配置比较
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具