将下面的依赖添加到pom.xml中,spring版本
org.springframework spring-context 5.1.9.RELEASE
package com.itheima.service;public interface UserService {public void save();
}
package com.itheima.service.impl;import com.itheima.service.UserService;public class UserServiceImpl implements UserService {@Overridepublic void save() {System.out.println("测试spring框架");}
}
https://docs.spring.io/spring-framework/docs/5.1.9.RELEASE/spring-framework-reference/core.html#spring-core
id是接口名称,class是实现类路径
import com.itheima.service.UserService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class UserApp {public static void main(String[] args) {// 加载配置文件ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");// 获取资源UserService userService = (UserService) ctx.getBean("userService");// 强制转换接口userService.save();//}
}
主要用来控制创建的对象是不是单例的
比如singleton创建的对象就是单例的
import com.itheima.service.UserService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class UserApp {public static void main(String[] args) {// 加载配置文件ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");// 获取资源UserService userService3 = (UserService) ctx.getBean("userService");// 强制转换接口UserService userService1 = (UserService) ctx.getBean("userService");// 强制转换接口UserService userService2 = (UserService) ctx.getBean("userService");// 强制转换接口System.out.println(userService2 == userService1);// 创建的是单例对象// userService.save();//}
}
import com.itheima.service.UserService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class UserApp {public static void main(String[] args) {// 加载配置文件ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");// 获取资源UserService userService3 = (UserService) ctx.getBean("userService");// 强制转换接口UserService userService1 = (UserService) ctx.getBean("userService");// 强制转换接口UserService userService2 = (UserService) ctx.getBean("userService");// 强制转换接口// System.out.println(userService2 == userService1);// 创建的是单例对象ctx.close();// userService.save();//}
}
package com.itheima.service;
import com.itheima.service.impl.UserServiceImpl;// 创建静态工厂类
public class UserServiceFactory {// 多态 父类指向子类对象public static UserService getService(){return new UserServiceImpl();// 返回一个实现类 对象}
}
更改配置文件
现在这种资源的创建与调用 走的是工厂类的创建
更改配置文件
package com.itheima.service;
import com.itheima.service.impl.UserServiceImpl;// 创建静态工厂类
public class UserServiceFactory {// 多态 父类指向子类对象// 实例工厂对象 去掉staticpublic UserService getService(){System.out.println("实例工厂创建出来的对象");return new UserServiceImpl();// 返回一个实现类 对象}
}
package com.itheima.dao;public interface UserDao {public void save();
}
package com.itheima.dao.impl;import com.itheima.dao.UserDao;public class UserDaoImpl implements UserDao {@Overridepublic void save() {System.out.println("set注入");}
}
package com.itheima.service.impl;import com.itheima.dao.UserDao;
import com.itheima.service.UserService;public class UserServiceImpl implements UserService {private UserDao userDao;// 使用set注入public void setUserDao(UserDao userDao) {this.userDao = userDao;}// 初始化函数public void init(){System.out.println("init...");}public void destroy(){System.out.println("销毁bean...");}@Overridepublic void save() {System.out.println("使用userDao调用操作");userDao.save();// 使用set注入的资源}
}
package com.itheima.service.impl;import com.itheima.dao.UserDao;
import com.itheima.service.UserService;public class UserServiceImpl implements UserService {private UserDao userDao;private int num;public void setNum(int num) {this.num = num;}// 使用set注入public void setUserDao(UserDao userDao) {this.userDao = userDao;}// 初始化函数public void init(){System.out.println("init...");}public void destroy(){System.out.println("销毁bean...");}@Overridepublic void save() {System.out.println("使用userDao调用操作");userDao.save();// 使用set注入的资源}
}
package com.itheima.service.impl;import com.itheima.dao.UserDao;
import com.itheima.service.UserService;public class UserServiceImpl implements UserService {private UserDao userDao;private int num;public void setNum(int num) {this.num = num;}// 使用set注入public void setUserDao(UserDao userDao) {this.userDao = userDao;}// 初始化函数public void init(){System.out.println("init...");}public void destroy(){System.out.println("销毁bean...");}@Overridepublic void save() {System.out.println("使用userDao调用操作" + num);userDao.save();// 使用set注入的资源}
}
使用读取到的数据给bean属性赋值
当团队协作的时候,xml文件过多可以配置多个xml文件,最后进行导入
该配置文件需要使用userDao和bookDao的资源
阿里数据源druid
4.0.0 com.itheima Spring_day01_04_实用开发相关配置 1.0-SNAPSHOT org.springframework spring-context 5.1.9.RELEASE com.alibaba druid 1.1.16
下一篇:Python绘制论文曲线图