
Spring应用拓展
AI-摘要
切换
Tianli GPT
AI初始化中...
介绍自己
生成本文简介
推荐相关文章
前往主页
前往tianli博客
Spring应用扩展
Bean的作用域
作用域 | 说 明 |
---|---|
singleton | 默认值。Spring以单例模式创建Bean的实例,即容器中该Bean的实例只有一个 |
prototype | 每次从容器中获取Bean时,都会创建一个新的实例 |
request | 用于Web应用环境,针对每次HTTP请求都会创建一个实例 |
session | 用于Web应用环境,同一个会话共享同一个实例,不同的会话使用不同的实例 |
global session | 仅在Portlet的Web应用中使用,同一个全局会话共享一个实例。对于非Portlet环境,等同于session |
<bean id="……" class="……" scope="prototype">
……
</bean>
@Scope
作用
指定Bean的作用域
默认值singleton(単例)
@Scope("prototype")
@Service("userService")
public class UserServiceImpl implements UserService {
// 省略其他代码
}
自动装配
取值 | 说明 |
---|---|
no | 默认值。Spring默认不进行自动装配,必须显式指定依赖对象 |
byName | 根据属性名自动装配。Spring 自动查找与属性名相同的id,如果找到,则自动注入,否则什么都不做 |
byType | 根据属性的类型自动装配。Spring 自动查找与属性类型相同的Bean,如果刚好找到唯一的那个,则自动注入;如果找到多个与属性类型相同的Bean,则抛出异常;如果没找到,就什么也不做 |
constructor | 和byType类似,不过它针对构造方法。如果 Spring 找到一个Bean和构造方法的参数类型相匹配,则通过构造注入该依赖对象;如果找不到,将抛出异常* |
单个设置
<bean id="userService" class="cn.smbms.service.user.UserServiceImpl"
autowire="byName" />
整体设置
<beans …… default-autowire="byName">
<!--省略其他代码-->
</beans>
拆分配置文件
两种方法
利用ClassPathXmlApplicationContext 的重载方法可以配置多个配置文件,用逗号隔开或者使用通配符
public ClassPathXmlApplicationContext( String configLocation );
public ClassPathXmlApplicationContext( String… configLocations );
使用方式
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 小张同学
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果