栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SSM之Spring文件配置/Spring怎么在pom文件中进行依赖注入/不同的依赖注入类型有哪些以及怎么写

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SSM之Spring文件配置/Spring怎么在pom文件中进行依赖注入/不同的依赖注入类型有哪些以及怎么写

写在前面:
接着记录自己的Spring学习之旅,若看不懂则建议先看上一篇博客SSM框架之Spring介绍开发流程/IDEA如何建立Spring项目,详细代码可在我的Gitee仓库ssm-learning克隆下载学习使用!

1.3 Spring配置文件 1.3.1 Bean标签 1.3.1.1 目的

让spring容器来调用配置的信息创建对象

1.3.1.2 基本属性
  • id :唯一的标识,标明Bean实例在Spring容器中是唯一的,没有重复的
  • class :Bean的全限定名,用Bean实例配置要创建的对象所属的类,一般写到类名
1.3.1.3 调用函数

**默认调用==(Bean中class参数配置的类)类中==无参构造函数 **, 类中没有无参构造无法运行

1.3.1.4 Bean标签范围配置Scope 1.3.1.4.1 Scope参数
参数说明实例化
singleton单例,即当前项目中仅且只创建一个对象且每次调用都是同一对象,默认容器加载时实例化
prototype多例,即可调用多次且每次都不同调用getBean时实例化
request用于Web项目,当Spring容器创建完对象后将其存入request域中
session用于Web项目,当Spring容器创建完对象后将其存入session域中
global session用于Portlet环境,若无Portlet则等同于session
1.3.1.4.2 使用Scope时Bean生命周期
参数对象创建对象运行对象销毁
prototype使用对象时创建对象使用便在长时间未使用则被Java垃圾回收器回收
singleton应用加载容器创建时创建容器在对象在容器销毁对象销毁

即:对象和容器共生死

1.3.1.5 Bean的生命周期
  • init-method:指定类中初始化方法
  • destroy-method:指定类中销毁方法
1.3.1.6 Bean实例化方式
  • 无参构造方法实例化 ,最常用,重点
  • 工厂静态方法实例化
  • 工厂实例化方法实例化

applicationContext中代码如下所示:

    
  
  
   
   
  
1.3.2 依赖注入 1.3.2.1 问题引入

目前外部Web层想要一个dao层对象,但是Web只能调用到Service对象,怎么实现?想法是配置好容器,在Service接口实现类中再次让Spring容器产生一个dao层对象并传过去,即getBean调用Service对象时service对象在getBean创建Dao层对象。

1.3.2.2 依赖注入

上述这种需要对象是不直接创建而通过控制反转,交给容器创建对象的方式叫做依赖注入(Dependency Injection),是IOC的具体实现,可以降低业务层之间的耦合度。

1.3.2.3 依赖注入方式 1.3.2.3.1 构造方法
  • 在ServiceImpl中使用有参数的构造方法,更改如下:
 private UserDao userDao;  
  // 有参构造
public UserServiceImpl(UserDao userDao) {  
    this.userDao = userDao;  
}  
public UserServiceImpl() {  
}
    public void sayHello() {  
// 土方法  
//        ApplicationContext appletContext = new ClassPathXmlApplicationContext("applicationContext.xml");  
//        UserDao userDao1 = (UserDao) appletContext.getBean("UserDao");  
//        userDao1.sayHello();  
  
// 依赖注入  
 userDao.sayHello();  
 }
  • applicationContext中配置,如下:
 
      
   
  
 		  
 
1.3.2.3.1Set方法
  • 在ServiceImpl中添加dao的set方法,更改如下:
  // 用set方法注入
 public void setUserDao(UserDao userDao) {  
        this.userDao = userDao;  
 }  
  • applicationContext中配置,如下:
  
  
  
  
   
 		
 
1.3.2.4 依赖注入数据类型 1.3.2.4.1 对象类型

上述操作已说明,不再赘述!

1.3.2.4.2 普通、引用及集合数据类型
  • 在实体类中创建int、String、List、map以及Properties属性并用set方法注入,如下:
/ 普通数据类型  
 int age;  
// 引用数据类型  
 String username;  
// 集合  
 private List userList;  
 private Map userMap;  
//    property  
 private Properties properties;  
  
// 用set方法注入  
  
 public List getUserList() {  
        return userList;  
 }  
  
    public void setUserList(List userList) {  
        this.userList = userList;  
 }  
  
    public Map getUserMap() {  
        return userMap;  
 }  
  
    public void setUserMap(Map userMap) {  
        this.userMap = userMap;  
 }  
  
    public Properties getProperties() {  
        return properties;  
 }  
  
    public void setProperties(Properties properties) {  
        this.properties = properties;  
 }  
  
    public void setAge(int age) {  
        this.age = age;  
 }  
  
    public void setUsername(String username) {  
        this.username = username;  
 }  
  
    public void show() {  
        System.out.println("测试普通数据类型");  
 		System.out.println("username = " + username + ",   age = " + age);  
 		System.out.println("集合数据类型");  
 		System.out.println(userList);  
 		System.out.println(userMap);  
 		System.out.println(properties);  
 }
  • 在applicationContext中配置,如下:
  
  
  
			  
			  
  
			  
				
   				林青霞  
					刘诗诗  
				
   		
   	  
			 
   			  
				  
				  
			 
   			
   			  
					
   					战秦琼  
						法外狂徒  
					 

   			

1.3.2.5 测试

用Junit单元测试,同
SSM框架之Spring介绍开发流程/IDEA如何建立Spring项目 中的项目测试操作,会在控制台出现相应结果!比如测试注入其它数据类型结果如下图

1.3.3 分模块开发 1.3.3.1 问题描述

实际开发过程中会很复杂,不可能所有文件都配置到Spring配置xml文件中,会每人负责一块写到自己的配置文件中,然后在主配置文件通过import标签引入加载,这样也方便后期维护!

1.3.3.2 引入代码

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/462726.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号