Spring beginner questions about annotations and thread safety
===

I am not sure if I am allowed to ask more than one question in a post, but here it is,

For example I have the following,

<b>Controller</b>
<pre>
@Controller
public class FooController{

	@Autowired
	private FooService fooService;

	@RequestMapping(value="/foo", method=RequestMethod.POST)
	public @ResponseBody foo(@RequestBody FooRequest request){
	}

}
</pre>
<b>Service</b>
<pre>
public class FooService{

	private Foo foo;
	
	public Foo getFoo() {
		return foo;
	}
	public void setFoo(Foo foo) {
		this.foo = foo;
	}
	public String doFoo(String str){
		return foo.doFoo(str);
	}
}

</pre>
<b>class to do the job</b>
<pre>
public class Foo{

	public String doFoo(String str){
		return (str + " is foo");
	}
}
</pre>
<b>create beans using dependency injection</b>
<pre>
&lt;context:annotation-config/>

&lt;bean id="fooService" class="com.myapp.service.FooService">
	&lt;property name="foo" ref="foo"></property>
&lt;/bean>	
&lt;bean id="foo" class="com.myapp.foo.Foo">
&lt;/bean>
</pre>

My questions are

 1. I did not use @service annotation at class FooService, should I use it, and <b>why</b>?
 2. Is this configuration thread safe or not, and <b>why</b> (how is it achieved if it is thread safe)?
 3. Where I can find a tutorial about the layers (dao layers, service layer ...) used in Spring design and the purpose of such a design.


Thanks!!