注解配置可代替xml
@Configuration //作为配置类,替代xml配置文件
@ComponentScan(basePackages = {"com.haha"})
public class SpringConfig {
}
UserDao.java
package com.haha.spring5.dao;
public interface UserDao {
public void add();
}
UserDaoImpl.java
package com.haha.spring5.dao;
import org.springframework.stereotype.Repository;
@Repository(value = "userDaoImpl1")
public class UserDaoImpl implements UserDao {
@Override
public void add() {
System.out.println("dao add.....");
}
}
UserService.java
package com.haha.spring5.service;
import com.haha.spring5.dao.UserDao;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
//在注解里面value属性值可以省略不写,
//默认值是类名称,首字母小写
//UserService -- userService
//@Component(value = "userService") //<bean id="userService" class=".."/>
@Service
public class UserService {
@Value(value = "abc")
private String name;
//定义dao类型属性
//不需要添加set方法
//添加注入属性注解
// @Autowired //根据类型进行注入
// @Qualifier(value = "userDaoImpl1") //根据名称进行注入
// private UserDao userDao;
//@Resource //根据类型进行注入
@Resource(name = "userDaoImpl1") //根据名称进行注入
private UserDao userDao;
public void add() {
System.out.println("service add......."+name);
userDao.add();
}
}
Test
@Test
public void testService2() {
//加载配置类
ApplicationContext context
= new AnnotationConfigApplicationContext(SpringConfig.class);
UserService userService = context.getBean("userService", UserService.class);
System.out.println(userService);
userService.add();
}