. xml配置依赖注入的方式:可阅读性比较差
步骤:
1.数据访问层实现类注解
@Repository(“userDao”)
import org.springframework.stereotype.Repository;
import com.oupeng.dao.UserDao;
import com.oupeng.pojo.User;
@Repository("userdao") //相当于配置中<bean id="userdao" class="com.oupeng.dao.impl.UserDaoImpl"/>
public class UserDaoImpl implements UserDao{
@Override
public int save(User user) {
System.out.println("保存用户到数据库成功.....");
System.out.println("保存用户到数据库成功....");
System.out.println(user.getId());
System.out.println(user.getUserName());
System.out.println(user.getPassword());
System.out.println(user.getEmail());
return 1;
}
}
2.业务逻辑层实现类注解
@Service(“userService”)
@Autowired
@Qualifier("userDao") //spring里提供
或者
@Resource(name="userDao") //java提供
package com.oupeng.service.impl;
import javax.annotation.Resource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import com.oupeng.dao.UserDao;
import com.oupeng.pojo.User;
import com.oupeng.service.UserService;
/*相当于<bean id="userService" class="com.oupeng.service.impl.UserServiceImpl">
</bean>*/
@Service("userService")
public class UserServiceImpl implements UserService {
//注入数据访问层
/**
* 之前:UserDaoImpl ud=new UserDaoImpl();
* ud.save(user);
*/
//Spring
/*相当于p:ud-ref="userdao" p:str="哈哈"*/
@Autowired //默认按照类型
@Qualifier("userdao") //按照名称
//@Resource(name="userdao")
UserDao ud;
String str;
public String getStr() {
return str;
}
public void setStr(String str) {
this.str = str;
}
//默认构造方法
public UserServiceImpl(){
System.out.println("业务逻辑类的默认构造方法");
}
//带参数构造方法
public UserServiceImpl(UserDao _ud,String _str){
this.ud=_ud;
this.str=_str;
}
public UserDao getUd() {
return ud;
}
public void setUd(UserDao ud) {
this.ud = ud;
}
public void addNewUser(User user) {
ud.save(user);
System.out.println(this.str);
//throw new RuntimeException("对不起,程序发生了运行时异常,请联系管理员...");
}
}
3.自动扫描注解所在的包
<context:component-scan base-package="com.oupeng.dao.impl,com.oupeng.service.impl"></context:component-scan>
4.测试
@Test
public void testService() {
ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
UserService ud=(UserService) context.getBean("userService");
/*User user=new User();
user.setUserName("曹操");
user.setPassword("565566");
user.setEmail("256@163.com");
user.setId(001);*/
User user= (User) context.getBean("user");
ud.addNewUser(user);
}
执行结果