@Controller
springMVC渐变的定义Controller,即@Controller,然后使用@RequestMapping或者@RequestParam等注解来定义URL请求和@Controller方法映射,即可被外界访问.@Controller标记在一个类上,即是SpringMVC Controller对象,分发处理器会扫描使用该注解类的方法,并检测是否使用了@RequestMapping
Spring如何认识springMVC控制类:
在springMVC配置中定义MyController的bean类 <bean class="MyController的相对路径"/>
在springMVC配置中告诉spring去哪找标记@Controller的控制器 <context:component-scan base-package="controller的上一级路径">
@requestMapping
用来处理请求地址映射的注解,可用于类或方法上,用于类上,表示类的所有的相应请求的方法都是以该地址作为父路径
@Resource和Autowired
都是做bean的注入是使用的
@ResponseBody
用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入response对象的body数据区,
使用时机:返回的数据不是html页面,而是其他格式的数据(如json,xml)
@Component
通用的注解,当不知道一些类归到哪层是使用,最好不用
@Service
当spring要创建UserServiceImpl实例时,bean的名字叫做UserService,当控制层使用UserSeriveceImpl实例时,直接注入到controller(action),同时控制层也需要声明一个"userService"的变量来接受
@Service("userService")
public class UserServiceImpl implements UserService{
}
@Resource(name="userService")
private UserService userService;
@Repository
@Repository(value="UserDao")告诉spring创建一个名叫"userDao"的UserDaoImpl实例,当Service使用UserServiceImpl时,就可以使用@Resource(name="UserDao")注解告诉spring,把创建好的UserDao注入到Service
@Repository(value="UserDao")
public class UserDaoImpl extends BaseDaoImpl<User>{
}
@Resource(name="userDao")
private BaseDao<user> UserDao;
@value 需要参数
spring可以通过value注解获取properties文件的内容,使用@Value必须在xml文件里添加扫描方式
@value("#{configProperties['t1.msgname']}") 这个需要指定配置文件的加载对象
@value("${t1.magname}") 无需指定具体的加载对象,但是需要一个关键对象来完成DrederencePlaceholderConfiurer
@ExceptionHandler
可以对服务端的运行错误做同意的处理,拦截所有类型的异常
也可以是针对性的处理某个异常 @ExceptionHandler(RuntimeException.class)