这篇文章主要为大家展示了“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
@ 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 上线文中进行查找,注册类型必须唯一,否则报异常
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。