



对于其它需要定义bean的方式也是很容易的
①在自己需要定义组件的实现类下面加上@Component("自己取名")

②在xml里面添加扫描包

③在主函数类里面获取此bean即可


其实spring给了我们三个衍生注解分别对应三层架构,来帮助我们阅读


spring3使用纯注解开发模式,使用java类替代配置文件
我们需要在自己官网名的包下新建一个config包,把配置类放进去


但是这时候我们并不能用,因为没有在主函数类里面加载配置类:

然后即可输出



如果要控制单例/非单例,则需要新加一个注解

如果需要初始化与销毁操作,那么也要加新注解:


因为我们少了个钩子函数


然后我们来运行一下

这说明,我们成功自动装配了,也就是说,将对应的dao层与service层绑定在一起了
当然,我们以后这样就可以不用写set方法了,因为@Autowired已经自动装配好了

但是当我们拥有2个相同类型的装配时,结果可想而知,不行了,这时候我们必须按名称装配(因为自动装配默认按类型装配)所以,如果我们需要有两个相同类型的进行自动装配就需要用到@Qualifier("你想注入的名称")(这时候@Autowired还是要的)

普通类型的写法:



但是我们通常是在外部文件加载配置的,因此这样写的意义不大,如果需要加载文件,那我们应该:
①现在是需要加载这个配置文件 的

②我们需要在配置类里面添加

③然后${}

这个问题是版本太高
②@PropertySource({“jdbc.properties”})无法找到
这个问题是你的resources包方错位置了,必须是

修改玩问题即可输出(但是@PropertiesSources不允许使用*)

由于不能直接把方法写在人家的jar包里面,那么只能依靠编程

然后在主函数类里面加载bean与执行输出

由于如果把所有的bean配置都写到配置类里的话,会变得非常长,因此我们也需要单独拆分成另一个文件
我们把配置bean的代码放在JdbcConfig下面

然后我们需要配置包扫描了

并回去把配置包注解加上

当然这时如果报错Unsupported class file major version 60那就降低jdk版本
然后我们发现可以成功

当然,这边更建议使用@Import因为只要写一行,而且能看到导入了哪个类



有时候经常要为A bean得到B bean的数据
对于简单类型数据,他的写法比较粗暴

引用类型的注入方式非常特殊
好的假设我现在想把BookDao这个实现类给注入,那么我只需要①添加扫描


②在方法里面添加类型与名字即可


红色写的量非常大
