美文网首页Spring
spring之常用注解

spring之常用注解

作者: Sophie12138 | 来源:发表于2018-07-12 10:20 被阅读7次

    1、@Component

    管理组件的通用形式,写在类名之上,将对象注入ApplicationContext容器中。

    2、@Controller

    对应mvc模式的c,也即为控制层,代码形式如下:

    1 @Controller
    2 @Scope("prototype")
    3 public class UserController {
    4 ……
    5 }
    

    使用@Controller注解标识UserController之后,就表示要把UserController交给Spring容器管理,在Spring容器中会存在一个名字为"UserController"的组件,这个名字是根据UserController类名来取的。注意:如果@Controller不指定其value,则默认的bean名字为这个类的类名首字母小写,如果指定value【@Controller(value="UserController")】或者【@Controller("UserController")】,则使用value作为bean的名字。
    这里的UserController还使用了@Scope注解,@Scope("prototype")表示将UserController的范围声明为原型,可以利用容器的scope="prototype"来保证每一个请求有一个单独的UserController来处理,避免线程安全问题。spring 默认scope 是单例模式(scope="singleton"),这样只会创建一个Action对象,每次访问都是同一Action对象,数据不安全,scope="prototype" 可以保证当有请求的时候都创建一个UserController对象。

    3、@Service

    1 @Service("userService")
    2 public class UserServiceImpl implements UserService {
    3 ………
    4 }
    

    注入后使用接口类型访问,更为安全可靠。

    1 // 注入userService
    2 @Resource(name = "userService")
    3 private UserService userService;
    

    4、@Repository

    @Repository对应数据访问层Bean ,例如:

    1 @Repository(value="userDao")
    2 public class UserDaoImpl extends BaseDaoImpl<User> {
    3 ………
    4 }
    

    5、@Autowired

    • @Autowired( import org.springframework.beans.factory.annotation.Autowired;),是Spring特有注解,默认按照类型方式进行bean匹配
    • @Resource(import javax.annotation.Resource;)是JavaEE的注解,默认按照名称方式进行bean匹配。

    推荐尽量使用@Autowired进行组件的注入

    相关文章

      网友评论

        本文标题:spring之常用注解

        本文链接:https://www.haomeiwen.com/subject/mmslpftx.html