JavaWeb学习笔记(五):Spring的配置数据

  • 上面我们学习了spring的项目的简单搭建,今天我们就一起学习spring的配置信息

  • 简单创建一个要进行调用的类,配置到文件中,在测试中进行调用

package com.wang.dao.impl;

import com.wang.dao.UserDao;

public class UserDaoImpl implements UserDao {
    
    
    public void save() {
    
    
        System.out.println("save 方法已经创建");
    }
}
  • 测试调用,打印上面的字符串
@Test
    public void test1() {
    
    
        ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");

        UserDao userDao = (UserDao) app.getBean("userDao");

        userDao.save();
    }
  • 静态工厂调用,新建静态调用类
package com.wang.factory;

import com.wang.dao.UserDao;
import com.wang.dao.impl.UserDaoImpl;

public class StaticFactory {
    
    
    
    public static UserDao getUserDao(){
    
    
        
        return  new UserDaoImpl();
    }
}
  • 配置
  <bean id="userDao" class="com.wang.factory.StaticFactory" factory-method="getUserDao"></bean>
  • 工厂实体类
package com.wang.factory;

import com.wang.dao.UserDao;
import com.wang.dao.impl.UserDaoImpl;

public class DynamicFactory {
    
    

    public UserDao getUserDao() {
    
    
        return new UserDaoImpl();
    }
}
  • 配置
<bean id="factory" class="com.wang.factory.DynamicFactory"></bean>
    <bean id="userDao" factory-bean="factory" factory-method="getUserDao"></bean>
  • 成员变量赋值配置
package com.wang.dao.impl;

import com.wang.dao.UserDao;

public class UserDaoImpl implements UserDao {
    
    
    public void setUsername(String username) {
    
    
        this.username = username;
    }

    public void setAge(int age) {
    
    
        this.age = age;
    }

    private String username;
    private int age;

    public void save() {
    
    
//        System.out.println("save 方法已经创建");
        System.out.println(username + "-" + age);
    }
}
  • 配置信息
<bean id="userDao" class="com.wang.dao.impl.UserDaoImpl">
        <property name="username" value="wangwu"></property>
        <property name="age" value="20"></property>
    </bean>
  • 成员注入类
package com.wang.service.impl;

import com.wang.dao.UserDao;
import com.wang.service.UserService;

public class UserServiceImpl implements UserService {
    
    

    private UserDao userDao;

    public void setUserDao(UserDao userDao) {
    
    
        this.userDao = userDao;
    }

    public void save() {
    
    
        userDao.save();
    }
}
  • 配置
 <bean id="userDao" class="com.wang.dao.impl.UserDaoImpl"></bean>
    <bean id="userService" class="com.wang.service.impl.UserServiceImpl">
        <property name="userDao" ref="userDao"></property>
    </bean>
  • 测试
public void test2() {
    
    
        ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");

        UserService userService = (UserService) app.getBean("userService");
        userService.save();
    }
  • 构造注入
package com.wang.service.impl;

import com.wang.dao.UserDao;
import com.wang.service.UserService;

public class UserServiceImpl implements UserService {
    
    

    private UserDao userDao;

    public void setUserDao(UserDao userDao) {
    
    
        this.userDao = userDao;
    }

    public UserServiceImpl(UserDao userDao) {
    
    
        this.userDao = userDao;
    }

    public UserServiceImpl() {
    
    
    }

    public void save() {
    
    
        userDao.save();
    }
}
  • 配置
<bean id="userDao" class="com.wang.dao.impl.UserDaoImpl"></bean>
    <bean id="userService" class="com.wang.service.impl.UserServiceImpl">
        <constructor-arg name="userDao" ref="userDao"></constructor-arg>
    </bean>
  • 多类型配置
package com.wang.dao.impl;

import com.wang.dao.UserDao;
import com.wang.domain.User;

import java.util.List;
import java.util.Map;
import java.util.Properties;

public class UserDaoImpl implements UserDao {
    
    

    private List<String> strList;
    private Map<String, User> userMap;
    private Properties properties;
    private String username;

    public void setStrList(List<String> strList) {
    
    
        this.strList = strList;
    }

    public void setUserMap(Map<String, User> userMap) {
    
    
        this.userMap = userMap;
    }

    public void setProperties(Properties properties) {
    
    
        this.properties = properties;
    }

    private int age;

    public String getUsername() {
    
    
        return username;
    }

    public void setUsername(String username) {
    
    
        this.username = username;
    }

    public int getAge() {
    
    
        return age;
    }

    public void setAge(int age) {
    
    
        this.age = age;
    }

    /*public UserDaoImpl() {
            System.out.println("创建");
        }
    public void init(){
        System.out.println("初始化方法。。。");
    }

        public void destory(){
            System.out.println("销毁方法。。。");
        }*/
    public void save() {
    
    
//        System.out.println(username + "======" + age);
        System.out.println(strList);
        System.out.println(userMap);
        System.out.println(properties);
        System.out.println("save running.....");
    }
}
  • 配置
<bean id="user1" class="com.wang.domain.User">
        <property name="name" value="zhangsan"></property>
        <property name="addr" value="beijiing"></property>
    </bean>
    <bean id="user2" class="com.wang.domain.User">
        <property name="name" value="wangwu"></property>
        <property name="addr" value="wuhan"></property>
    </bean>
    <bean id="userDao" class="com.wang.dao.impl.UserDaoImpl" >
        <property name="strList" >
            <list>
                <value>dsadd</value>
                <value>dsf</value>
                <value>dsafdsfdd</value>
                <value>dsfdsfdadd</value>
            </list>
        </property>
        <property name="userMap">
            <map>
                <entry key="user1" value-ref="user1"></entry>
                <entry key="user1" value-ref="user2"></entry>
            </map>
        </property>
        <property name="properties">
            <props>
                <prop key="p1">ppp1</prop>
                <prop key="p2">ppp2</prop>
                <prop key="p3">ppp3</prop>
            </props>
        </property>
    </bean>

代码地址

猜你喜欢

转载自blog.csdn.net/weixin_43674113/article/details/121731883