重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章给大家分享的是有关Spring3.x中有几种Bean配置方式的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
创新互联专注为客户提供全方位的互联网综合服务,包含不限于网站设计、网站制作、离石网络推广、成都微信小程序、离石网络营销、离石企业策划、离石品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供离石建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com
下面分别介绍下这三种配置方式;首先定义一个用于举例的JavaBean。
package com.chinalife.dao public class LoginUserDao { …… // 用于设置初始化方法 public void myInit() { } // 用于设置销毁方法 public void myDestroy() { } }
一、 基于XML的配置
……
在XML配置中,通过
当Bean的实现类来源于第三方类库,比如DataSource、HibernateTemplate等,无法在类中标注注解信息,只能通过XML进行配置;而且命名空间的配置,比如aop、context等,也只能采用基于XML的配置。
二、基于注解的配置
@Scope(“prototype”) @Lazy(true) @Component(“loginUserDao”) public class LoginUserDao { …… // 用于设置初始化方法 @PostConstruct public void myInit() { } // 用于设置销毁方法 @PreDestroy public void myDestroy() { } }
在Bean实现类中通过一些Annotation来标注Bean类:
·@Component:标注一个普通的SpringBean类(可以指定Bean名称,未指定时默认为小写字母开头的类名)
·@Controller:标注一个控制器类
·@Service:标注一个业务逻辑类
·@Repository:标注一个DAO类
通过在成员变量或者方法入参处标注@Autowired按类型匹配注入,也可以使用@Qualifier按名称配置注入。通过在方法上标注@PostConstrut和PreDestroy注解指定的初始化方法和销毁方法(可以定义任意多个)。通过@Scope(“prototype”)指定Bean的作用范围。通过在类定义处标注@Lazy(true)指定Bean的延迟加载。
当Bean的实现类是当前项目开发的,可以直接在Java类中使用基于注解的配置,配置比较简单。
三、基于Java类配置
@Configuration public class Conf { @Scope(“prototype”) @Bean(“loginUserDao”) public LoginUserDao loginUserDao() { return new LoginUserDao(); } }
在标注了@Configuration的java类中,通过在类方法标注@Bean定义一个Bean。方法必须提供Bean的实例化逻辑。通过@Bean的name属性可以定义Bean的名称,未指定时默认名称为方法名。在方法处通过@Autowired使方法入参绑定Bean,然后在方法中通过代码进行注入;也可以调用配置类的@Bean方法进行注入。通过@Bean的initMethod或destroyMethod指定一个初始化或者销毁方法。通过Bean方法定义处标注@Scope指定Bean的作用范围。通过在Bean方法定义处标注@Lazy指定Bean的延迟初始化。
当实例化Bean的逻辑比较复杂时,则比较适合基于Java类配置的方式。
感谢各位的阅读!关于“Spring3.x中有几种Bean配置方式”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!