ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Spring依赖注入

2021-01-19 20:35:17  阅读:124  来源: 互联网

标签:依赖 UserServiceDao demo dao Spring import com public 注入


Spring依赖注入

创建对象的方式都是使用xml配置文件.

1.通过有参构造

dao层

package com.demo.dao;

public interface UserMapper {
	
}
package com.demo.dao.impl;

import com.demo.dao.UserMapper;

public class UserMapperImpl implements UserMapper {
	
}

service层

Dao层

package com.demo.service;

public interface UserServiceDao {
    void getUserService();
    void show();

}

Impl层

package com.demo.service.impl;

import com.demo.service.UserServiceDao;

public class UserServiceDaoImpl implements UserServiceDao {
    private String name;
    //dao层
    private UserMapper userMapper;

    
    //有参构造
    public UserServiceDaoImpl(String name,UserMapper userMapper){
        
    }

	//展示成员变量中的值
    @Override
    public void show() {
        System.out.println(name+"="+userMapper);
    }
}

配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="UserMapper" class="com.demo.dao.impl.UserMapperImpl"/>
    
    <bean id="UserServiceDao" class="com.demo.service.impl.UserServiceDaoImpl">
        <constructor-arg name="name" value="李四"/>
        <!--指定引用类型属性的值-->
        <constructor-arg name="userMapper" ref="UserMapper"/>
    </bean>
</beans>

注意:

在配置文件确定成员变量的三种方式:
    name:指定成员变量名
    type:指定成员变量类型
    index:指定成员变量所在索引位置
赋值:
	value:基本类型的属性赋值
	ref:引用类型的属性赋值,来自于spring创建的对象的唯一标识

测试类

import com.demo.dao.UserMapper;
import com.demo.service.UserServiceDao;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MyTest05 {

    public static void main(String[] args) {
        /**
         * 通过有参构造依赖注入
         */
        //通过spring容器获取对象
        ApplicationContext context =
                new ClassPathXmlApplicationContext("classpath:UserBeans01.xml");
        UserServiceDao bean = (UserServiceDao) context.getBean("UserServiceDao");
        //打印获取到的对象
        System.out.println("bean = " + bean);
        //调用方法
        bean.show();//李四=com.demo.dao.impl.UserMapperImpl@55d56113
    }
}

2.通过set方法

service层

Impl层

package com.demo.service.impl;

import com.demo.dao.UserMapper;
import com.demo.service.UserServiceDao;

public class UserServiceDaoImplSet implements UserServiceDao {
    private String name;
    private UserMapper userMapper;

    public void setName(String name) {
        this.name = name;
    }

    public void setUserMapper(UserMapper userMapper) {
        this.userMapper = userMapper;
    }

    public UserServiceDaoImplSet() {
        System.out.println("对象创建成功");
    }

    //打印成员变量值
    @Override
    public void show() {
        System.out.println(name+"="+userMapper);
    }
}

配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="UserMapper" class="com.demo.dao.impl.UserMapperImpl"/>
    
    <bean id="UserServiceDao" class="com.demo.service.impl.UserServiceDaoImplSet">
		
        <!--
			name:1.类中有对应属性(set方法名去掉set之后的驼峰名字)
                 2.类中无对应属性(set方法名去掉set之后的名字)
		-->
        <property name="name" value="李四"/>
        <!--指定引用类型属性的值-->
        <property name="userMapper" ref="UserMapper"/>
    </bean>
</beans>

测试类

import com.demo.dao.UserMapper;
import com.demo.service.UserServiceDao;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MyTest05 {

    public static void main(String[] args) {
        /**
         * 通过有参构造依赖注入
         */
        //通过spring容器获取对象
        ApplicationContext context =
                new ClassPathXmlApplicationContext("classpath:UserBeans02.xml");
        UserServiceDao bean = (UserServiceDao) context.getBean("UserServiceDao");
        //打印获取到的对象
        System.out.println("bean = " + bean);
        //调用方法
        bean.show();//李四=com.demo.dao.impl.UserMapperImpl@a67c67e
    }
}

标签:依赖,UserServiceDao,demo,dao,Spring,import,com,public,注入
来源: https://www.cnblogs.com/sunplum/p/14299856.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有