新建一个maven项目
1.创建一个接口
public interface UserDao {
void play();
}
2.dao层接口的实现类
public class MysqlImpl implements UserDao{
//重写抽象方法
@Override
public void play(){
System.out.println("实现类,实现接口的抽象方法!!!!");
}
}
3.业务层的接口
// 业务层的实现接口
public interface ServicesDao {
void play();
}
业务层实现类
public class ServicesImpl implements ServicesDao{
@Override
public void play(){
userDao.play();
System.out.println("业务层的实现类 调用接口层的方法" +
"");
}
5.测试一下
@Test
public void test(){
UserServiceImpl userService = new UserServiceImpl();
userService.play();
}
原来的方式是这样写的,如果再增加多个实现类 这样每次都有去new一个实现类,每次变动
都需要修改大量代码。
6.核心在业务层(sping的思想,控制权在调用者手里)
//业务层需要去调用 接口层
//利用set方法 进行动态实现
public UserDao userDao;
//利用set动态注入
public void setUserDao(UserDao userDao){
this.userDao=userDao;
}
@Override
public void play(){
userDao.play();
System.out.println("业务层的实现类 调用接口层的方法" +
"");
}
7下面使用spring容器 管理对象.
<?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 就是一个人对象 hello hello = new hello();
id="变量名" class = new 的对象
property 给属性赋值
-->
<!-- 使用Spring 来创建对象,在Spring这些都称为为Bean -->
<!-- 使用Spring 来创建对象,在spring这些称为bean -->
<bean id="mysqlImpl" class="com.kuang.dao.MysqlImpl"></bean>
</beans>
8.使用spring管理 再次测试,现在不用创建对象,可以从容器中共拿这个对象
beans.xml
测试类
public class MyTest {
public static void main(String[] args) {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
Hello hello = (Hello)context.getBean("hello");
System.out.println(hello.toString());
}
}
获取hello对象
继续学习
beans.xml 有三种编写方式
1. 根据index参数的下标设置
<bean id="user" class="com.kuang.pojo.User">--> <constructor-arg index="0" value="狂神说java"/>--> </bean>-->
2.根据参数名字设置
(通过直接参数名来设置) ioc创建对象的三种方式 --> <bean id="user" class="com.kuang.pojo.User"> <constructor-arg name="name" value="狂神说java"></constructor-arg> </bean>
3.根据参数类型设置
<bean id="useT" class="com.kuang.pojo.UserT" name="user2 U2"> <property name="name" value="西部开源"/><!--对象中的值 name属性=西部开源 --> </bean>