②. Spring原始注解开发
- ①. Spring是轻代码而重配置的框架,配置比较繁重,影响开发效率,所以注解开发是一种趋势,注解代替xml配置文件可以简化配置,提高开发效率。
- ②. Spring原始注解主要是替代
<Bean>
的配置
③. 注意事项(使用注解进行开发时,需要在applicationContext.xml中配置组件扫描,作用是指定哪个包及其子包下的Bean需要进行扫描以便识别使用注解配置的类、字段和方法)
<!--注解的组件扫描--> <context:component-scan base-package="com.xiaozhi"></context:component-scan>
④. 代码演示
//@Component("userDao") 相当于: <bean id="userDao" class="com.xiaozhi.UserDaoImpl"/> 使用@Compont或@Repository标识UserDaoImpl需要Spring进行实例化 //@Component("userDao") @Repository("userDao") public class UserDaoImpl implements UserDao { @Override public void save() { System.out.println("save running... ..."); } } //使用@Compont或@Service标识UserServiceImpl需要Spring进行实例化 //使用@Autowired或者@Autowired+@Qulifier或者@Resource进行userDao的注入 //@Component("userService") @Service("userService") public class UserServiceImpl implements UserService { /*@Autowired @Qualifier("userDao")*/ @Resource(name="userDao") private UserDao userDao; @Override public void save() { userDao.save(); } }
//使用@Value进行字符串的注入 @Repository("userDao") public class UserDaoImpl implements UserDao { @Value("注入普通数据") private String str; @Value("${jdbc.driver}") private String driver; @Override public void save() { System.out.println(str); System.out.println(driver); System.out.println("save running... ..."); } }
//使用@Scope标注Bean的范围 //@Scope("prototype") @Scope("singleton") public class UserDaoImpl implements UserDao { //此处省略代码 }
//使用@PostConstruct标注初始化方法,使用@PreDestroy标注销毁方法 @PostConstruct public void init(){ System.out.println("初始化方法...."); } @PreDestroy public void destroy(){ System.out.println("销毁方法....."); }