说明:
@Controller 控制层,就是我们的action层
示例:
1. 控制层5.其他常用如下:
@SuppressWarnings
##作用是给编译器一条指令,告诉它对被批注的代码元素内部的某些警告保持静默。
@Controller
##是告诉Spring容器,这是一个控制器类
@RequestMapping(value="/account.do")
##是来定义该控制器对应的请求路径(/account.do)
@Autowired
##完成注入依赖,默认是按照类型装配注入的
@Resource
##完成注入依赖,默认是按照名称来装配注入的
@Service
##用于标识这是一个Service层实现
@Transactional(readOnly = false, rollbackFor = DataAccessException.class)
##用于控制事务,只读关闭,遇到DataAccessException异常回滚。
##如果不对异常进行处理,该异常将一直向上层抛出,直至抛出到页面
@RequestMapping(method = RequestMethod.GET)
##指定这个方法为get请求时调用
@RequestMapping(method = RequestMethod.POST)
##指定该方法接受post请求
@RequestParam
##绑定参数名
public void hello(@RequestParam("username") String u, @RequestParam("password") String p) {...}
##请求参数类型要求:
ServletRequest/ServletResponse/HttpSession/Principal/Locale/InputStream/OutputStream/Reader/Writer
##返回值类型要求:
ModelAndView/Model/View/Map/String/null
@SessionAttributes("msg")
##将ModelMap中的某个参数指定到Session中,将其绑定为Session属性
##页面使用:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
或者
model.put("msg", account);
##定义即将传出的参数account
##控制层代码:
@RequestMapping(method = RequestMethod.POST)
public String login(@ModelAttribute("account") Account account) {...}
@ResponseBody
##将HTTP请求正文转换为适合的HttpMessageConverter对象
@RequestBody
##将内容或对象作为 HTTP 响应正文返回,并调用适合HttpMessageConverter的Adapter转换对象,写入输出流
HttpMessageConverter
##HttpMessageConverter接口,需要开启
AnnotationMethodHandlerAdapter
##AnnotationMethodHandlerAdapter会初始化7个转换器,可以通过调用getMessageConverts()方法来获取转换器的一个集合List
ByteArrayHttpMessageConverter
StringHttpMessageConverter
ResourceHttpMessageConverter
SourceHttpMessageConverter
XmlAwareFormHttpMessageConverter
Jaxb2RootElementHttpMessageConverter
MappingJacksonHttpMessageConverter
##Spring默认的json协议解析由Jackson完成
-------------------------------------------
${spring.webapp.root}
##指代当前应用路径
@Value("/WEB-INF/database.properties")
private File databaseConfig;
##引入配置文件中的参数
@Value("${jdbc.url}")
private String url;
##若配置文件已被容器加载,可直接访问其中变量
@ImportResource("/WEB-INF/database.properties")
public class AccountDaoImpl extends AccountDao {
##只有一个类使用配置文件
@ContextConfiguration(locations = "classpath:applicationContext.xml")
##导入配置文件,Spring-Test的这个配置只认classpath,必须拷贝这些文件到根目录!
@RunWith(SpringJUnit4ClassRunner.class)
##SpringJUnit支持,由此引入Spring-Test框架支持!
@Transactional
##这个非常关键,如果不加入这个注解配置,事务控制就会完全失效!
@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true)
##这里的事务关联到配置文件中的事务控制器(transactionManager = "transactionManager"),同时指定自动回滚(defaultRollback = true)。
public abstract class AbstractTestCase extends AbstractTransactionalDataSourceSpringContextTests
##要想构建这一系列的无污染纯绿色事务测试框架就必须找到这个基类