本篇内容主要讲解“Spring Bean的装载方式”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Spring Bean的装载方式”吧!
成都网站建设哪家好,找创新互联公司!专注于网页设计、重庆网站建设公司、微信开发、小程序制作、集团成都定制网页设计等服务项目。核心团队均拥有互联网行业多年经验,服务众多知名企业客户;涵盖的客户类型包括:砂岩浮雕等众多领域,积累了大量丰富的经验,同时也获得了客户的一致认可!
Bean的装配方式
Bean的装配可以理解为依赖关系注入
基于XML的装配
a) 设值注入
i.要求:
Bean 类必须提供一个默认的无参构造方法。 Bean 类必须为需要注入的属性提供对应的setter方法。
b) 构造注入
package com.itheima.assemble; import java.util.List; public class User { private String username; private Integer password; private List
其中
package com.itheima.assemble; import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext; public class XmlBeanAssembleTest { public static void main(String[] args) { //定义配置文件路径 String xmlPath = "com/itheima/assemble/beans5.xml"; //加载配置文件 ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath); //构造方式输出结果 System.out.println("构造方式:"); System.out.println(applicationContext.getBean("user1")); //设值方式输出结果 System.out.println("设值方式:"); System.out.println(applicationContext.getBean("user2")); }}
2.基于Annotation的装配
package com.itheima.annotation; public interface UserDao { public void save();}
package com.itheima.annotation; import org.springframework.stereotype.Repository; @Repository("userDao")public class UserDaoImpl implements UserDao{ public void save(){ System.out.println("userdao...save..."); }}
先使用@Repository 注解将UserDaolmpl 类标识为Spring 中的Bean,其写法相当于配置文件中
package com.itheima.annotation; public interface UserService { public void save();}
package com.itheima.annotation; import javax.annotation.Resource; import org.springframework.stereotype.Service; @Service("userService")public class UserServiceImpl implements UserService{ @Resource(name="userDao") private UserDao userDao; @Override public void save() { // TODO Auto-generated method stub //调用userDao中的save()方法 this.userDao.save(); System.out.println("userservice...save..."); } public void setUserDao(UserDao userDao) { this.userDao = userDao; } }
@Service 注解将UserServicelmpl 类标识为Spring中的Bean,这相当于配置文件中 Controller 注解标注了UserController 类,这相当于在配置文件中编写 package com.itheima.annotation; import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext; public class AnnotationAssembleTest { public static void main(String[] args) { String xmlPath = "com/itheima/annotation/beans6.xml"; ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath); //获取UserController实例 UserController userController = (UserController)applicationContext.getBean("userController"); //调用UserController中的save()方法 userController.save(); }} 3.自动装配 增加了autowire 属性,并将其属性值设置为byName 。在默认情况下,配置文件中需要通过ref 来装配Bean ,但设置了autowire=" byName"后,Spring 会自动寻找userServiceBean 中的属性,并将其属性名称与配置文件中定义的Bean 做匹配。由于UserServicelmpl 中定义了userDao 属'性及其setter 方法,这与配置文件中id 为userDao 的Bean 相匹配,所以Spring会自动地将id 为userDao 的Bean 装配到id 为userService 的Bean 中。 到此,相信大家对“Spring Bean的装载方式”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
网站标题:SpringBean的装载方式
文章路径:http://kswsj.cn/article/gdoeig.html