都知道这两个注解可以实现bean的注入
@Autowired 这个是spring的注解 org.springframework.beans.factory.annotation.Autowired
@Resource 这属于java自带的注解 javax.annotation.Resource
@Autowired默认是按照类型来注入的,需要按名字注入的话可以跟@Qualifier搭配使用
@Resource是按照里面的name属性来注入的
上代码吧,更有区分性
针对于面向接口编程的话,一个接口一个实现类是没啥区分性的。
倘若两个实现类,你不指定的话,会报这个错
org.springframework.beans.factory.BeanCreationException bean创建失败
expected single matching bean but found 2: personServiceImpl1,personServiceImpl2
可以写一个实例 一个service接口,两个serviceImpl实现类
public interface PersonService {public List<Person> listPerson();
}
@Service
public class PersonServiceImpl1 implements PersonService{
@Autowired
private PersonMapper mapper;
<span class="token keyword">public</span> List<span class="token operator"><</span>Person<span class="token operator">></span> <span class="token function">listPerson</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
System<span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"PersonServiceImpl1.java"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">return</span> mapper<span class="token punctuation">.</span><span class="token function">listPerson</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
}
@Service
public class PersonServiceImpl2 implements PersonService{
@Autowired
private PersonMapper mapper;
<span class="token keyword">public</span> List<span class="token operator"><</span>Person<span class="token operator">></span> <span class="token function">listPerson</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
System<span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"PersonServiceImpl2.java"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">return</span> mapper<span class="token punctuation">.</span><span class="token function">listPerson</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
}
之后写一个controller层来进行注入调用
@Controller
public class PersonController {
@Autowired
@Qualifier(“personServiceImpl1”)
private PersonService service;
@<span class="token function">Resource</span><span class="token punctuation">(</span>name<span class="token operator">=</span><span class="token string">"personServiceImpl2"</span><span class="token punctuation">)</span>
<span class="token keyword">private</span> PersonService service2<span class="token punctuation">;</span>
@<span class="token function">RequestMapping</span><span class="token punctuation">(</span><span class="token string">"listPerson"</span><span class="token punctuation">)</span>
@ResponseBody
<span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">listPerson</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
List<span class="token operator"><</span>Person<span class="token operator">></span> list <span class="token operator">=</span> service<span class="token punctuation">.</span><span class="token function">listPerson</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
System<span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>list<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
@<span class="token function">RequestMapping</span><span class="token punctuation">(</span><span class="token string">"listPerson2"</span><span class="token punctuation">)</span>
@ResponseBody
<span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">listPerson2</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
List<span class="token operator"><</span>Person<span class="token operator">></span> list <span class="token operator">=</span> service2<span class="token punctuation">.</span><span class="token function">listPerson</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
System<span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>list<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
}
实例简单明了,一看就懂
小白入手。。。