文章目录
SpringIOC注解方式注册bean对象
@Controller
@Repository
@Service
@Component
类注解,标记未bean对象@Resource()
属性注解,标记该属性从spring对象池中获取@ComponentScan("com.bb.*")
类注解,声明扫描的范围- 获取bean对象
@Controller @Repository @Service @Component 类注解,标记未bean对象
public interface IUserDao {
public void say();
}
@Repository
public class UserDaoImpl implements IUserDao {
@Override
public void say() {
System.out.println("---------");
}
}
public interface IUserService {
public void say();
}
@Service
public class UserServiceImpl implements IUserService {
@Autowired
private IUserDao userDao;
@Override
public void say() {
userDao.say();
}
}
@Controller
public class UserController {
@Resource()
private IUserService userService ;
public void add(){
userService.say();
}
}
@ComponentScan(“com.bb.*”) 类注解,声明扫描的范围
JavaConfig
与 applicationContext.xml配置文件是等价的
@Configuration
@ComponentScan("com.bb.*")
//@ComponentScans(value={@ComponentScan("com.bb.controller")
// ,@ComponentScan("com.bb.service.impl")
// ,@ComponentScan("com.bb.dao.impl")})
public class JavaConfig {
}
获取bean对象
注意
: new AnnotationConfigApplicationContext(JavaConfig.class)
ps
:JavaConfig.class
与 "applicationContext"
是等价的
public static void main(String[] args) {
ApplicationContext ac = new AnnotationConfigApplicationContext(JavaConfig.class);
UserController user = ac.getBean("userController",UserController.class);
user.add();
}
输出打印
---------
总结:通过注解方式实现了bean对象的注册和属性的设置,这是一种替代xml配置的方式。
项目打包 提取码:py68
环境:eclipse