这里能看出什么?红线两行表明了它可以通过调用构造函数来进行实例化,因为这都是newInstance,上面可以加参数,下面这个没有任何参数。

对比图一上面一行,他们的作用是不是是一样的,上面图的有一个全限定类名,它可以反射创建该对象,并且调用一个单参构造,把dataSource参数传进去,而下面的也是调用构造函数,有一个参数传进去。
但是他两的效果不一样,xml方式除了会创建对象,还会扔到springIOC容器中,key-value对,而new方式只是一个方法,不会有人把它给你存入spring容器。如果我有一个注解能够把当前方法的返回值存入spring容器中,那么接下来他们就是相等的。
这个注解就是@Bean
@Bean注解:用于把当前方法的返回值作为bean对象,存入springIOC容器中,而容器是有键值对的,
属性:name:用于指定bean的id。默认值,即当不写时当前方法的名称。
细节:当我们使用注解配置方法时,如果方法有参数,spring框架会去容器中查找有没有可用的bean对象
查找的方式和Autowired注解的作用是一样的,自动按照类型注入,如果有唯一的类型匹配,就注入,如果没有匹配时,就报错

@Configuration
@ComponentScan(basePackages = "com.yujie")
public class SpringConfiguration {//用于创建QueryRunner对象@Bean(name="runner")public QueryRunner createQueryRunner(DataSource dataSource) {return new QueryRunner(dataSource);}//依照xml文件写法,把数据源也创建出来,数据源对象@Bean(name="dataSource")//注意,把上面的bean注解拿走的时候,当我们用注解来配置的时候,public DataSource createDataSource(){try {ComboPooledDataSource ds = new ComboPooledDataSource();ds.setDriverClass("com.mysql.jdbc.Driver");ds.setJdbcUrl("jdbc:mysql://localhost:3306/springdb");ds.setUser("root");ds.setPassword("root");return ds;}catch (Exception e){throw new RuntimeException(e);}}

Spring框架----Spring的bean注解相关推荐

  1. Spring框架中的Bean

    1.什么是Bean? 在Spring框架中,Bean是指一个由Spring容器管理的对象.这个对象可以是任何一个Java类的实例,例如数据库连接.业务逻辑类.控制器等等.Bean实例的创建和管理是由S ...

  2. 深入学习Spring框架(二)- 注解配置

    1.为什么要学习Spring的注解配置? 基于注解配置的方式也已经逐渐代替xml.所以我们必须要掌握使用注解的方式配置Spring. 关于实际的开发中到底使用xml还是注解,每家公司有着不同的使用习惯 ...

  3. Spring 框架的AOP之注解的方式

    1. 环境搭建 1.1 导入 jar 包 Spring 框架的基本开发包(6个); Spring 的传统AOP的开发包 spring-aop-4.3.10.RELEASE org.aopallianc ...

  4. Spring框架----Spring的bean的生命周期

    bean对象的生命周期 单例对象 出生:当容器创建时,对象出生 活着:只要容器存在,对象一直活着 死亡:只要容器销毁,对象消亡 总结:单例对象的生命周期和容器相同 <bean id=" ...

  5. Spring框架基础(2)----Bean的创建及标签属性

    一.实例化Bean的三种方式 ⽅式⼀:使用无参构造函数 在默认情况下,它会通过反射调⽤⽆参构造函数来创建对象.如果类中没有无参构造函数,将创建失败. <bean id="userSer ...

  6. Spring 框架——spring入门教程

    打个广告,帮朋友卖点东西,东西超便宜的哟[衣服鞋子等],厂家直接出货,绝对低于市场价!!! 一般都比市场价便宜3-7折[都是牌子货],如果您感兴趣,可以扫描屏幕下方的二维码,感谢关注!!! 微信 一. ...

  7. java集成hibernate_JavaWeb_(Spring框架)Spring整合Hibernate

    Dao层类要继承HibernateDaoSupport.java父类 原先使用Hibernate框架hibernate.cfg.xml配置数据库 com.mysql.jdbc.Driver jdbc: ...

  8. Spring框架----Spring的环绕通知

    问题:当我们配置了环绕通知之后,切入点方法没有执行,而通知方法执行了 /*环绕通知 * 问题:当我们配置了环绕通知之后,切入点方法没有执行,而通知方法执行了 * */ public void arou ...

  9. Spring框架----Spring框架的基本概念

    1.spring 是什么 Spring是分层的 Java SE/EE应用 full-stack 轻量级开源框架,以 IOC(Inverse Of Control: 控制反转)和 AOP(Aspect ...

最新文章

  1. Go的变量到底在堆还是栈中分配
  2. python导出json
  3. CF Theatre Square
  4. php在双引号中输出变量要加大括号,php中输出变量加大括号{}作用_PHP教程
  5. 系统间通信2:通信管理与远程方法调用RMI
  6. 五分钟教你在Go-Bigger中设计自己的游戏AI智能体
  7. javaweb学习总结(二十一)——JavaWeb的两种开发模式
  8. spring boot 跨域请求_SpringBoot 系列教程 web 篇之自定义请求匹配条件 RequestCondition...
  9. Python3——FTP(文件传输协议)
  10. Mybatis-generator,自动生成文件.问题及解决
  11. 不同类型变量与零值比较
  12. 西安Uber优步司机奖励政策(1月11日~1月17日)
  13. 关于DBC文件的格式解析(转)
  14. 【网络工程师】<软考中级>IP子网划分
  15. Java目前主流框架
  16. MySQL计算天数差
  17. 脉冲神经网络(SNN)论文阅读(一)-----Going Deeper With Directly-Trained Larger Spiking Neural Networks
  18. html中网站小图标,HTML网站图标favicon
  19. ModuleNotFoundError: No module named ‘pip‘;ERROR: Could not find a version that satisfies the requir
  20. 进程:execve加载流程

热门文章

  1. 小米9稳定版系统更新:加入水滴屏形状切换开关
  2. 螺旋千斤顶设计大作业_如何正确使用汽车千斤顶,新手司机看过来,老司机教你正确用法...
  3. 怎么保存python文件_python如何保存文本文件
  4. python中path的用法,python中path的用法
  5. java输入某年某个季度_Java获取某年某季度的第一天出错
  6. 爬虫python区别_Python爬虫-04:贴吧爬虫以及GET和POST的区别
  7. 【Flink】Flink实验特性--reinterpretAsKeyedStream 将DataStream重新解释为KeyedStream
  8. 【Flink】flink sql的并行度怎么单独设置
  9. 95-862-040-源码-runtime-blob-BlobStore
  10. 80-600-020-原理-存储引擎-简介