小弟刚从C++转JAVA不久,遇到这样一个问题,求高人帮忙解答。
我现在大体理解了注入的实现方式,例如在一个标注有@configuration 的类里面,如果一个方法
上面有@bean,那么这个方法的返回的类对象会被实例化。
我的疑问是这样的,这个实例化的对象是全局唯一的吗,或者说 是一个单体类吗?
因为我要在我的程序里不同地方使用调用这个bean的方法,我担心如果是单体类的话,
是否存在数据同步的问题?类似C++中的全局变量。毕竟如果他只有一个实例的话,
两个不同的程序流都使用它发送数据,不知道是否会出问题。。
请大人帮忙解答,谢谢!
默认单例,策略可以配置
我想用这个单例调用send方法,向网络上发送数据,简单的说,就是这样的功能。我的担心是,我这样用这个单例,在不同的线程中调用send方法,会不会出现异常。
你的类是否线程安全,你应该清楚啊? 这个要你自己保证,别人怎么知道?
一般来说,如果方法不涉及类成员变量就是线程安全, 当然方法中调用的其它方法也必须线程安全.
所以你要自己检查你的代码和你调用的其它方法,如果不是线程安全的,你要么自己同步,要么将类变成spring prototype就可以了
这个不用开发者担心,spring内部已进做出处理