springmvc + hibernate构建web工程(二)
2015-07-20 17:17
399 查看
上篇主要说的是在springMVC构建WEB工程时的一些配置,现在来说说其他部分。
@Controller: 表示该类是一个controller,也就是action组件, spring不要求我们继承任何controller相关的基类或者引用相关的servlet API。为了使这些声明生效,我们需要在配置文件中添加下面的一行:
@Resource: 用于注入,默认按名称装配,表示将loginService注入到该类中
@RequestMapping:请求映射,表示将login.do为结尾的请求映射到该方法处理
这里面还有一个很常见的@ResponseBody注解,它表示将内容或者对象作为HTTP响应正文返回,并调用适合的HttpMessageConverter的Adapter转换对象,写入输出流。按照上节的配置,会将内容或者对象转换成JSON返回
@Service: 表示service组件
@Transactional: 用于事务管理
@Repository: 声明一个Dao组件
controller
以登录为例如下:@Controller public class LoginController { private LoginService loginService; @Resource public void setLoginService(LoginService loginService) { this.loginService = loginService; } @RequestMapping("login.do") public ModelAndView login(String username, String password, HttpSession session, HttpServletResponse response) { HashMap resultMap = new HashMap(); HashMap result = loginService.checkLogin(username, password); if ("true".equals(result.get("code"))) { session.setAttribute("user", result.get("user")); resultMap.put("code", "true"); resultMap.put("username", username); resultMap.put("password", password); return new ModelAndView("admin-index", resultMap); } else { resultMap.put("code", "false"); return new ModelAndView("index", resultMap); } } }
@Controller: 表示该类是一个controller,也就是action组件, spring不要求我们继承任何controller相关的基类或者引用相关的servlet API。为了使这些声明生效,我们需要在配置文件中添加下面的一行:
<context:component-scan base-package="com.my.xx"/>
@Resource: 用于注入,默认按名称装配,表示将loginService注入到该类中
@RequestMapping:请求映射,表示将login.do为结尾的请求映射到该方法处理
这里面还有一个很常见的@ResponseBody注解,它表示将内容或者对象作为HTTP响应正文返回,并调用适合的HttpMessageConverter的Adapter转换对象,写入输出流。按照上节的配置,会将内容或者对象转换成JSON返回
<bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> </list> </property> </bean>
Service
在上面,我们注入了loginService,loginService是接口的一个实例public interface LoginService { public HashMap checkLogin(String username, String password); }
@Service public class LoginServiceImpl implements LoginService { private LoginDao loginDao; @Resource public void setLoginDao(LoginDao loginDao){ this.loginDao = loginDao; } @Transactional public HashMap checkLogin(String username, String password){ HashMap result = loginDao.checkLogin(username, password); return result; } }
@Service: 表示service组件
@Transactional: 用于事务管理
Dao
在service中,我们注入了loginDaopublic interface LoginDao { public HashMap checkLogin(String username, String password); }
@Repository public class LoginDaoImpl implements LoginDao { private SessionFactory sessionFactory; @Resource public void setSessionFactory(SessionFactory sessionFactory){ this.sessionFactory = sessionFactory; } public HashMap checkLogin(String username, String password){ HashMap resultMap = new HashMap(); Session session = sessionFactory.getCurrentSession(); Query query = session.createQuery("from User where username = ? and password = ?"); query.setParameter(0, username); query.setParameter(1, password); List<User> users = query.list(); if(users.size() > 0){ resultMap.put("code", "true"); resultMap.put("user", users.get(0)); }else{ resultMap.put("code", "false"); } return resultMap; } }
@Repository: 声明一个Dao组件
相关文章推荐
- Struts2 -validate和XML配置——验证框架(客户端验证 及服务端验证)
- java中interface使用之多态接口动态加载
- eclipse快捷键及各种设置
- MyEclipse使用总结——MyEclipse10安装SVN插件
- Java使用Deque实现堆栈的方法
- IOS and JAVA 的 RSA 加密解密
- 第几天(java处理日期)
- Java并发控制机制
- java处理日期
- Java关键字this、super使用总结
- JavaWeb学习总结(基于Servlet+JSP+JavaBean开发模式的用户登录注册)
- JavaBeans和关系数据库的镜像
- 学java 遇到的那些事儿
- Java之——通过两个点的经纬度计算距离(插曲)
- 面向GC的Java编程
- 当spring 容器初始化完成后执行某个方法
- Spring Web MVC处理请求流程
- Java关键字final、static使用总结
- Eclipse的配置
- struts2验证框架——validate()方法