Spring中bean的含义是啥啊?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring中bean的含义是啥啊?相关的知识,希望对你有一定的参考价值。

Spring配置文件中的一个bean一个bean的,都是什么意思啊,我小白,求白话解释,谢谢了,外带个例子
<bean id="userAction" class="com.neusoft.gmsbs.gms.user.action.UserAction"
scope="prototype">
<property name="userBO" ref="userBO" />
</bean>
<bean id="userBO" class="com.neusoft.gmsbs.gms.user.bo.impl.UserBOImpl">
<property name="userDAO" ref="userDAO" />
</bean>
<bean id="userDAO" class="com.neusoft.gmsbs.gms.user.dao.impl.UserDAOImpl">
<property name="sqlMapClient" ref="sqlMapClient"></property>
</bean>
谁要是把这个给我解决明白了,外加20

我个人的理解,觉得bean就相当于定义一个组件,这个组件是用于具体实现某个功能的。这里的所定义的bean就相当于给了你一个简洁方便的方法来调用这个组件实现你要完成的功能。
对于我们的spring最主要的应该就是由这些bean组成的bean工厂,每个bean实现一个功能
例如:你写的第一个bean
<bean id="userAction" class="com.neusoft.gmsbs.gms.user.action.UserAction"
scope="prototype">
<property name="userBO" ref="userBO" />
</bean>
id相当于定义了你的这个bean的别名,如果你需要他的话只要关联这个别名就可以了,也就相当于下面的<property name="userBO" ref="userBO" />一样,在你的userAction中需要实现userBO这个功能,我关联它,那么在action中set注入就可以使用了!
至于其他的属性看下面:
Id : 标识该bean的名称,通过factory.getBean(“id”)来获得实例。
Class : 该bean的类路径。
Singleton : 默认为true,即单实例模式,每次getBean(“id”)时获取的都是同
一个实例,如果设置为false,即原型模式,则每次获取的是新创建
的实例。
Init-method : 在bean实例化后要调用的方法(bean里定义好的方法)。
Destroy-method : bean从容器里删除之前要调用的方法。
Autowire : 其属性要通过何种方法进行属性的自动装配。
对于上述的各个属性,id和class是必要的,其他的则可以省略。例如如果设置了autowire的值,则表明需要自动装配,否则是手动装配。
参考技术A 其实所谓的bean,就是java的class,但符合2个条件;
(1)有无参构造函数;
(2)为成员编写了set get方法

这样spring容器就很方便地管理它
参考技术B

bean从容器里删除之前要调用的方法; /.getBean(“id”)来获得实例,在你的userAction中需要实现userBO这个功能; 该bean的类路径;userBO",id相当于定义了你的这个bean的别名.UserAction&quot,每次getBean(“id”)时获取的都是同一个实例,否则是手动装配;property name="一样,每个bean实现一个功能。

比如:

1、对于上述的各个属性,其他的则可以省略;userAction&quot!至于其他的属性看下面。这里的所定义的bean就相当于给了你一个简洁方便的方法来调用这个组件实现你要完成的功能。
Class ,则每次获取的是新创建的实例,id和class是必要的.gms,如果设置false;userBO"/:你写的第一个bean即单实例模式。

2、Singleton ; class=&quot: 在bean实例化后要调用的方法(bean里定义好的方法)。

3、Destroy-method ;bean&gt: 其属性要通过何种方法进行属性的自动装配;com。对于我们的spring最主要的应该就是由这些bean组成的bean工厂.user;例如如果设置了autowire的值,也就相当于下面的&lt,我关联它.gmsbs。

4、Init-method ;prototype"&gt,即原型模式;userBO&quot: 标识该bean的名称;property name=&quot.action : 默认为true;bean id=&quot,通过factory我个人的解;ref=&quot,如果你需要他的话只要关联这个别名就可以了,这个组件是用于具体实现某个功能的;userBO&quot,那么在action中set注入就可以使用了.neusoft;&gt。


5、scope="/> ref=&quot,则表明需要自动装配,觉得bean就相当于定义一个组件。

参考技术C 如果你上面的内容写在beans.xml中,则通过如下代码
ApplicationContext factory = new ClassPathXmlApplicationContext("beans.xml");
UserAction action= (UserAction)factory.getBean("userAction");
得到的action就是一个com.neusoft.gmsbs.gms.user.action.UserAction类的实例。简单来说就是等于你UserAction action = new UserAction()得到的结果。
参考技术D 一看就是东软学子

java中bean类,action类,model类,util类,dao等的作用是啥啊?

bean类:是一些实体类,包括viewbean,databean等等。
action类:可作为接收显示层的数据,连接显示层和业务逻辑实现层的控制层。
model类:MVC中model层就是到层。在java中无特殊含义就是模块。
util类:工具类
dao:数据库操作类。对数据库进行曾删改查等操作
参考技术A bean 就是基本的JavaBean ,多为实体
action类 是 操作方法,对于页面Form 表单的操作方法,具体操作方法的实现就在Action 类里面。
model类 是模块,这个不清楚你提的是哪一块,是想问MVC 中的M,还是某段代码中的model.
util类,多为工具类,不知道这里你问的JDK中的Util类,还是一般通常程序员自己写Util类?
JDK中util的基本都是容器、集合相关的类。
至于dao ,就是数据库操作类,对于数据库的增删改查的操作都在这里。
参考技术B ButtonCt1这个应该是你自己定义的类
不是系统的
public class ActionEventextends AWTEvent指示发生了组件定义的动作的语义事件。当特定于组件的动作(比如被按下)发生时,由组件(比如 Button)生成此高级别事件。事件被传递给每一个 ActionListener 对象,这些对象是使用组件的 addActionListener 方法注册的,用以接收这类事件。

注:要使用键盘在 Button 上触发 ActionEvent,请使用空格键。

实现 ActionListener 接口的对象在发生事件时获得此 ActionEvent。因此,侦听器不必处理个别鼠标移动和鼠标单击的细节,而是可以处理像“按下按钮”这样的“有意义”(语义)事件。

ActionEvent
public ActionEvent(Object source,
int id,
String command)构造一个 ActionEvent 对象。
注意,传入无效 id 会导致未指定的行为。如果 source 为 null,则此方法抛出 IllegalArgumentException。为 null 的 command 字符串是合法的,但不建议使用。

参数:
source - 发起事件的对象
id - 标识事件的整数
command - 一个字符串,它可以用来指定与事件所相关的一条命令(可能是几个中的一个)
抛出:
IllegalArgumentException - 如果 source 为 null

--------------------------------------------------------------------------------

ActionEvent
public ActionEvent(Object source,
int id,
String command,
int modifiers)使用组合键构造一个 ActionEvent 对象。
注意,传入无效 id 会导致未指定的行为。如果 source 为 null,则此方法抛出 IllegalArgumentException。为 null 的 command 字符串是合法的,但不建议使用。

参数:
source - 发起事件的对象
id - 标识事件的整数
command - 一个字符串,它可以用来指定与事件所相关的一条命令(可能是几个中的一个)
modifiers - 进行此动作期间按下的组合键
抛出:
IllegalArgumentException - 如果 source 为 null

--------------------------------------------------------------------------------

ActionEvent
public ActionEvent(Object source,
int id,
String command,
long when,
int modifiers)使用指定组合键和时间戳构造一个 ActionEvent 对象。
注意,传入无效 id 会导致未指定的行为。如果 source 为 null,则此方法抛出 IllegalArgumentException。为 null 的 command 字符串是合法的,但不建议使用。

参数:
source - 发起事件的对象
id - 标识事件的整数
command - 一个字符串,它可以用来指定与事件所相关的一条命令(可能是几个中的一个)
when - 发生事件的时间
modifiers - 进行此动作期间按下的组合键
抛出:
IllegalArgumentException - 如果 source 为 null
参考技术C bean一般都是一些实体类,dao通常用于访问数据库。 参考技术D 参照例子仿写一个稍完整的Struts2或者MVC项目,你得到的解释要比二楼的答案更清晰,试试

以上是关于Spring中bean的含义是啥啊?的主要内容,如果未能解决你的问题,请参考以下文章

spring ioc aop 的原理是啥啊,面试时我怎么回答才好呢?说说面试技巧好吗

java中bean类,action类,model类,util类,dao等的作用是啥啊?

将@Component 添加到自定义 Spring Security 过滤器的含义是啥

springbean的生命周期是啥?

为啥Spring把bean设计成单态的,这样的设计的好处是啥?

Spring中Bean及@Bean的理解