当前位置:网站首页 > Java基础 > 正文

java spring入门(javabean spring)



javaBean要求所有属性为私有,该类必须有一个公共无参构造函数,private属性必须提供公共的Getter setter给外部访问

SpringBean是受Spring管理的对象,所有能受Spring管理的对象都可以是SpringBean

  • 用处不同:传统javabean更多地作为值传递参数,而spring中的bean用处几乎无处不在,任何组件都可以被称为bean
  • 写法不同:传统javabean作为值对象,要求每个属性都提供getter和setter方法;但spring中的bean只需为接受设值注入的属性提供setter方法

生命周期不同:传统javabean作为值对象传递,不接受任何容器管理其生命周期;spring中的bean有spring管理其生命周期行为

准备工作:引入Spring依赖包

通过ClassPathXmlApplicationContext需要指定configLocation,所有我们现在resources目录下新建一个Spring.xml文件

同时相应对象重写toString方法,便于更好观察user1和user2

运行测试类

运行结果如下

User{name='zhangsan'}

User{name='lisi'}

也是通过BeanDefinition实现

*@Bean@Component@Service@Controller都可以;一般@Service用于Service层,@Controller用于Controller层,此处以@Bean为例

新建一个Config类,并给User打上@Bean标签

通过AnnotationConfigApplicationContext获取bean,并打印bean对象

运行结果

User{name='null'}

运行结果

User{name='null'}

4.1通过FactoryBean与注解方式

首先新建一个Person类

然后新建一个PersonFactoryBean类,并实现FactoryBean接口,重写其方法,为其打上@component注解, 此处和在Person类上打注解是同一效果

其次添加一个Config类打上@ComponentScan("org.example.bean"),目的是为了扫描包下的注解

最后通过AnnotationConfigApplicationContext获取Bean

运行结果

org.example.bean.Person@28ac3dc3

4.2通过Factory和BeanDefinition

1.同4.1一样新建一个Person类

2.同4.1一样新建一个PersonFactoryBean类,实现FactoryBean接口,但是不打注解

3.通过BeanDefinition获取对象

此处和注解生成的差别在于通过BeanDefinition注册的会生成两个Bean对象,一个是person对应的类型是Person,另一个是&person对应的类型是PersonFactoryBean,通过下面代码的getBean方法可以看出来!!

运行结果如下

org.example.bean.PersonFactoryBean@3aeaafa6

org.example.bean.Person@76a3e297

FactoryBean接口提供三个方法,但是我们重写了两个方法,这是因为另外一个方法是默认实现了的

FactoryBean接口方法如下:

bean的注入方式本文只是提供了多种api,很多情况下底层其实用的都是一样的东西,只是提供了不同的使用方式,具体可以通过源码查看。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

到此这篇java spring入门(javabean spring)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • java自学课程较好的网站(java 自学网站)2025-06-03 21:36:05
  • yarn命令查看队列资源(java查看yarn队列信息)2025-06-03 21:36:05
  • java spring菜鸟教程(javascrip菜鸟教程)2025-06-03 21:36:05
  • python爬虫和java爬虫性能比较(java爬虫和java后端相比)2025-06-03 21:36:05
  • 爬虫跟java哪个好(爬虫和java哪个好)2025-06-03 21:36:05
  • JAVA中字符串转date(JAVA中字符串转日期)2025-06-03 21:36:05
  • java dateutils工具类(java中dateformat类)2025-06-03 21:36:05
  • java字符串转map集合(java字符串转decimal)2025-06-03 21:36:05
  • java爬虫入门教程(java爬虫教学)2025-06-03 21:36:05
  • list转string用逗号隔开java(list<string>转list<integer>)2025-06-03 21:36:05
  • 全屏图片