springMVC 使用注解注入接口实现类
spring常用的注释:
@Component:标准一个普通的spring Bean类。
@Controller:标注一个控制器组件类。
@Service:标注一个业务逻辑组件类。
@Repository:标注一个DAO组件类
在代码中注释注入接口实现类时,
1.比如有一个接口如下:
-
1 public interface Filter { 2 public String doFilter(String param); 3 }
2.有如下接口实现类:
-
1 public class TimeFilter implements Filter { 2 3 @Override 4 public String doFilter(String param) { 5 return param.replace("aa", "bb"); 6 } 7 8 }
3.使用方式:在接口实现类定义位置添加注解 @Service("timeFilter"),如下:
-
1 import org.springframework.stereotype.Service; 2 @Service("timeFilter") 3 public class TimeFilter implements Filter { 4 5 @Override 6 public String doFilter(String param) { 7 return param.replace("aa", "bb"); 8 } 9 10 }
4.在需要注入的地方使用如下方式引入:
@Autowired
@Qualifier("timeFilter")
Filter timeFilter;
注意:
1.在引用实现类的时候,使用的是实现类的接口(这是因为 springMVC 代理的接口)。
2.在引用实现类的时候,需要使用@Qualifier 注解,注明使用哪个名称的实现类(用来区分哪一个实例),当接口有且只有一个实现类时可以不注明其类名。