1.在userserviceImpl
代码
package com.edu.service.impl;
import com.edu.dao.UserDao;
import com.edu.service.UserService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class UserServiceImpl implements UserService {
/*有参构造方法实现依赖注入*/
private UserDao userDao;
public UserServiceImpl(UserDao userDao) {
this.userDao = userDao;
}
public UserServiceImpl() {
}
@Override
public void sayHi() {
userDao.sayHi();
}
}
2.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">
<!--spring的IOC体现 优势,耦合性更低,不用再通过new一个实体类了-->
<bean id="userDao" class="com.edu.dao.impl.UserDaoImpl"></bean>
<!--service层的实现类依赖注入dao层(构造方法的方式注入)-->
<!--<bean id="userService" class="com.edu.service.impl.UserServiceImpl"></bean>-->
<!--set方法实现依赖注入-->
<!--<bean id="userService" class="com.edu.service.impl.UserServiceImpl">
<property name="userDao" ref="userDao"></property>
</bean>-->
<!--有参构造方法实现依赖注入-->
<bean id="userService" class="com.edu.service.impl.UserServiceImpl">
<constructor-arg name="userDao" ref="userDao"></constructor-arg>
</bean>
</beans>
3.进行测试
代码
import com.edu.dao.UserDao;
import com.edu.service.UserService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MyTest {
public static void main(String[] args){
/*ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
UserDao userDao = (UserDao) app.getBean("userDao");
userDao.sayHi();*/
ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
UserService userService = (UserService) app.getBean("userService");
userService.sayHi();
}
}
userdao
package com.edu.dao;
public interface UserDao {
void sayHi();
}
userdaoimpl
package com.edu.dao.impl;
import com.edu.dao.UserDao;
public class UserDaoImpl implements UserDao {
@Override
public void sayHi() {
System.out.println("实现类要开始说Hi");
}
}
userservice
package com.edu.service;
public interface UserService {
public void sayHi();
}