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

spring(一)注入

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

spring(一)注入

spring(一)注入

ioc的本质就是将在service层调用dao层的控制权进行转移,可以理解为:原本的选择权是我们程序员在service层写死的,new了哪个指定的对象就会调用dao层的实现类中的方法;使用ioc之后,在service层内将dao层的类的对象作为参数,并增加了set方法,将dao层对象作为参数进行传入,这样一来,只需要在测试类中调用service层的set方法并传入dao层具体的对象就会调用传入的实现类中的方法,程序变的不是那么死板。

1.引入依赖

	org.springframework
	spring-context
	5.2.8.RELEASE

在引入该依赖以后就会自动配置spring所需要的其他依赖

2.编写案例

2.1实体类
2.1.1User类

public class User {
    private String name;
    private int age;
    public User() {
    }
    public User(String name, int age) {
        this.name = name;
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "User{" +
                "name='" + name + ''' +
                ", age=" + age +
                '}';
    }
}

2.1.2Address类

public class Address {
    private String address;
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    @Override
    public String toString() {
        return "Address{" +
                "address='" + address + ''' +
                '}';
    }
}

2.1.3Student类

package com.joker.pojo;

import java.util.*;

public class Student {
    private String name;
    private Address address;
    private String[] books;
    private List hobbys;
    private Map card;
    private Set games;
    private Properties info;
    private String wife;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Address getAddress() {
        return address;
    }
    public void setAddress(Address address) {
        this.address = address;
    }
    public String[] getBooks() {
        return books;
    }
    public void setBooks(String[] books) {
        this.books = books;
    }
    public List getHobbys() {
        return hobbys;
    }
    public void setHobbys(List hobbys) {
        this.hobbys = hobbys;
    }
    public Map getCard() {
        return card;
    }
    public void setCard(Map card) {
        this.card = card;
    }
    public Set getGames() {
        return games;
    }
    public void setGames(Set games) {
        this.games = games;
    }
    public Properties getInfo() {
        return info;
    }
    public void setInfo(Properties info) {
        this.info = info;
    }
    public String getWife() {
        return wife;
    }
    public void setWife(String wife) {
        this.wife = wife;
    }
    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + ''' +
                ", address=" + address.toString() +
                ", books=" + Arrays.toString(books) +
                ", hobbys=" + hobbys +
                ", card=" + card +
                ", games=" + games +
                ", info=" + info +
                ", wife='" + wife + ''' +
                '}';
    }
}

2.2基本的spring配置文件
配置Student类,展示了不同数据的注入方式 。



       
        
        
    
    
        
        
        
        
        
        
            
                红楼梦
                西游记
                水浒传
                三国
            
        
        
        
            
                听歌
                看电视
                打游戏
            
        
        
        
            
                
                
            
        
        
        
            
                lol
                coc
                bob
            
        
        
        
            
        
        
        
            
                1234567890
                joker
                
            
        
    

2.3含有c/p名空间的配置文件
配置User类




    
    


    
    

注意:这里的如果使用p命名空间来注入值,一般只用作set注入的方法;如果想要使用c命名空间,实体类中必须要有有参构造函数。

3.测试
public class MyTest {
    public static void main(String[] args) {
    //获取spring容器,参数是对应的实体类的配置文件名称(这里为了方便区分,需要自己改一下配置文件名称)
        ApplicationContext context = new ClassPathXmlApplicationContext("StudentBeans.xml");
        //获取对象
        Student student = (Student) context.getBean("student");
        System.out.println(student.toString());
    }

    @Test
    public void Test2() {
        ApplicationContext context = new ClassPathXmlApplicationContext("UserBeans.xml");
        User user = context.getBean("user", User.class);
        System.out.println(user);
    }
}

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

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

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