注解开发定义bean
对于其它需要定义bean的方式也是很容易的
①在自己需要定义组件的实现类下面加上@Component("自己取名")
②在xml里面添加扫描包
③在主函数类里面获取此bean即可
其实spring给了我们三个衍生注解分别对应三层架构,来帮助我们阅读
纯注解开发
spring3使用纯注解开发模式,使用java类替代配置文件
我们需要在自己官网名的包下新建一个config包
,把配置类放进去
但是这时候我们并不能用,因为没有在主函数类里面加载配置类:
然后即可输出
bean管理
如果要控制单例/非单例,则需要新加一个注解
如果需要初始化与销毁操作,那么也要加新注解:
因为我们少了个钩子函数
自动装配
然后我们来运行一下
这说明,我们成功自动装配了,也就是说,将对应的dao层与service层绑定在一起了
当然,我们以后这样就可以不用写set方法了,因为@Autowired
已经自动装配好了
但是当我们拥有2个相同类型的装配时,结果可想而知,不行了,这时候我们必须按名称装配(因为自动装配默认按类型装配)所以,如果我们需要有两个相同类型的进行自动装配就需要用到@Qualifier("你想注入的名称")
(这时候@Autowired
还是要的)
普通类型的写法:
但是我们通常是在外部文件加载配置的,因此这样写的意义不大,如果需要加载文件,那我们应该:
①现在是需要加载这个配置文件 的
②我们需要在配置类里面添加
③然后${}
①ASM ClassReader failed to parse class file - probably due to a new Java clas
这个问题是版本太高
②@PropertySource({“jdbc.properties”})无法找到
这个问题是你的resources包方错位置了,必须是
修改玩问题即可输出(但是@PropertiesSources
不允许使用*
)
管理第三方bean
由于不能直接把方法写在人家的jar包里面,那么只能依靠编程
然后在主函数类里面加载bean与执行输出
由于如果把所有的bean配置都写到配置类里的话,会变得非常长,因此我们也需要单独拆分成另一个文件
我们把配置bean的代码放在JdbcConfig下面
然后我们需要配置包扫描了
并回去把配置包注解加上
当然这时如果报错Unsupported class file major version 60
那就降低jdk版本
然后我们发现可以成功
当然,这边更建议使用@Import
因为只要写一行,而且能看到导入了哪个类
为第三方bean注入资源
有时候经常要为A bean得到B bean的数据
对于简单类型数据,他的写法比较粗暴
引用类型的注入方式非常特殊
好的假设我现在想把BookDao这个实现类给注入,那么我只需要①添加扫描
②在方法里面添加类型与名字即可
总结
红色写的量非常大