请解释一下spring MVC,hibernate和Spring的安全性

时间:2016-08-27 12:01:07

标签: java spring hibernate spring-mvc spring-security

我在很多指南的帮助下,设法使用Spring安全和hibernate创建了我的第一个登录页面。

我遇到的问题主要是指南没有非常彻底的解释,所以我希望我能通过你们得到一些答案。

问题1: 为什么我们要为UserDao创建接口类?我知道这个接口的目的是获得某种数据库的访问权限。但由于我的UserDao只包含:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case android.R.id.home:
        finish();
        return true;
    default:
        return super.onOptionsItemSelected(item);
    }
}

我不能只创建一个类吗?

问题2:

当我跑步时,幕后实际发生了什么:

public interface UserDao {

User findByUserName(String userName);

boolean insertUser(User user);

}

问题3:

@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {  
    auth.userDetailsService(userDetailsService);
}

此课程何时以及如何被召唤?

我已经阅读了大部分文档但仍然不理解。

提前致谢!

1 个答案:

答案 0 :(得分:0)

回答Q1

没有DAO接口的编程。

  • 假设您是一个庞大系统的程序员,负责根据新的要求添加组件。
  • 从一开始就实现了系统与MySQL协同工作。
  • 由于新要求,您的项目经理要求您实施对Oracle的支持。 (每当需要DB支持应该在MySQL和Oracle之间切换时)
  • MySQL查询和Oracle查询不同。
  • 您的系统未使用像hibernate这样的ORM框架实现。
  • 特别是,没有DAO接口。所有这些都是与DB通信的具体类。
  • 现在,您将使用包括与Oracle相关的查询的方法实现java类。
  • 你遇到了麻烦,
  • 您的系统很庞大
  • 包含复杂的商业逻辑
  • 不检查您无法
  • 的服务层代码或文档
  • 知道(您无法更改服务层代码。)
  • 我应该使用哪些类/方法来实现哪些名称。
  • 应该采用什么方法'输入参数。
  • 应该输出什么。
  • 肯定需要几个月的时间,具体取决于系统的复杂程度。 (减少时间是软件项目的关键点)

但是使用DAO接口

  • 您只需要考虑Oracle特定的查询,因为
  • 您刚刚实现了DAO接口
  • 自动dao界面让您保持在轨道上
  • 使用正确的方法名称
  • 使用正确的输入参数
  • 使用正确的返回变量
  • 如果您不在赛道中,则编辑将失败。
  • 您可以使用bean注入轻松插入oracle或mysql支持