springMVC中常用注解有哪些

这篇文章主要为大家展示了“springMVC中常用注解有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“springMVC中常用注解有哪些”这篇文章吧。

一,使用注解:

在spring的配置文件applicationContext.xml中,加入注解扫描。配置项就配置了对指定的包进行扫描,以实现依赖注入。

<?xml version="1.0" encoding="UTF-8"?>  <span ><beans xmlns=""    xmlns:xsi=""  xmlns:context=""  xmlns:aop=""   xsi:schemaLocation="                    ">    <aop:aspectj-autoproxy/>    <context:annotation-config/>    <context:component-scan base-package="com.test" /> //去哪扫描 </beans>

二,常见注解:

@Controller @Service @Autowired @RequestMapping @RequestParam @ModelAttribute @Cacheable @CacheFlush @Resource @PostConstruct @PreDestroy @Repository @Component (不推荐使用) @Scope @SessionAttributes @InitBinder @Required @Qualifier

三,常用spring注解:

@Controller(运用于表现层)

使用@Controller注解标识UserAction之后,就表示要把UserAction交给Spring容器管理,在Spring容器中会存在一个名字为"userAction"的action,这个名字是根据UserAction类名来取的。注意:如果@Controller不指定其value【@Controller】,则默认的bean名字为这个类的类名首字母小写,如果指定value【@Controller(value="UserAction")】或者【@Controller("UserAction")】,则使用value作为bean的名字。

这里的UserAction还使用了@Scope注解,@Scope("prototype")表示将Action的范围声明为原型,可以利用容器的scope="prototype"来保证每一个请求有一个单独的Action来处理,避免struts中Action的线程安全问题。spring 默认scope是单例模式(scope="singleton"),这样只会创建一个Action对象,每次访问都是同一Action对象,数据不安全,struts2 是要求每次次访问都对应不同的Action,scope="prototype" 可以保证当有请求的时候都创建一个Action对象

@Controller

@Scope("prototype") public class UserAction extends BaseAction<User>{   }

@ Service(运用于业务逻辑层)

注意,@service注解是在服务接口的实现类下,而不是接口中使用。

这里很好的体现了spring中的控制反转,我们不在让对象自己去实例化对象,去主动依赖对象,而是 专门用一个容器来创建对象,由IOC进行管理。实例:

Action要使用UserServiceImpl时,就不用主动去创建UserServiceImpl的实例了,创建UserServiceImpl实例已经交给Spring来做了,Spring把创建好的UserServiceImpl实例给Action,Action拿到就可以直接用了。Action由原来的主动创建UserServiceImpl实例后就可以马上使用,变成了被动等待由Spring创建好UserServiceImpl实例之后再注入给Action,Action才能够使用。这说明Action对“UserServiceImpl”类的“控制权”已经被“反转”了,原来主动权在自己手上,自己要使用“UserServiceImpl”类的实例,自己主动去new一个出来马上就可以使用了,但现在自己不能主动去new“UserServiceImpl”类的实例,new“UserServiceImpl”类的实例的权力已经被Spring拿走了,只有Spring才能够new“UserServiceImpl”类的实例,而Action只能等Spring创建好“UserServiceImpl”类的实例后,再“恳求”Spring把创建好的“UserServiceImpl”类的实例给他,这样他才能够使用“UserServiceImpl”,这就是Spring核心思想“控制反转”,也叫“依赖注入”,“依赖注入”也很好理解,Action需要使用UserServiceImpl干活,那么就是对UserServiceImpl产生了依赖,Spring把Acion需要依赖的UserServiceImpl注入(也就是“给”)给Action,这就是所谓的“依赖注入”。对Action而言,Action依赖什么东西,就请求Spring注入给他,对Spring而言,Action需要什么,Spring就主动注入给他。

@Service("userService") public class UserServiceImpl implements UserService { }

@ Repository(运用于数据管理层)

笔者是使用工具反向生成的实体层数据Model跟mapper,所以也没用到这个注解,不过这个就是简单的向spring容器中注入一个Bean

@Repository(value="userDao") public class UserDaoImpl extends BaseDaoImpl<User> { }

四,常用springMVC注解:

@Autowired(按类型注入)

对类成员变量、方法及构造函数进行标注,完成自动装配的工作。简单来说就是调用Bean,告诉spring这个存在与被管理的容器中。

@Autowired 根据bean 类型从spring 上线文中进行查找,注册类型必须唯一,否则报异常

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。