请解释spring MVC,hibernate和Spring security
Posted
技术标签:
【中文标题】请解释spring MVC,hibernate和Spring security【英文标题】:Please Explain spring MVC , hibernate and Spring security 【发布时间】:2017-01-03 23:44:24 【问题描述】:在很多指南的帮助下,我刚刚使用 Spring 安全性和休眠创建了我的第一个登录页面。
我遇到的问题主要是指南没有很详尽的解释,所以我希望我能通过你们得到一些答案。
问题 1: 为什么我们要为例如 UserDao 创建接口类?我知道这个接口的目的是访问某种数据库。但由于我的 UserDao 只包含:
public interface UserDao
User findByUserName(String userName);
boolean insertUser(User user);
我不能只创建一个类吗?
问题 2:
当我跑步时,幕后实际发生了什么:
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception
auth.userDetailsService(userDetailsService);
问题 3:
@Service
@Transactional
public class UserDetailsServiceImpl implements UserDetailsService
@Autowired
private UserDao userDao;
@Override
public UserDetails loadUserByUsername(String userName) throws
UsernameNotFoundException
code...
何时以及如何调用此类?
我已经阅读了大部分文档,但仍然不明白。
提前致谢!
【问题讨论】:
你研究过文档吗?您的问题对于本网站来说太宽泛了,因为一个全面的答案会太长并且只是复制文档。 是的,如前所述,我已经阅读了文档并没有理解所写的内容,而且我很确定前两个问题不是那么广泛。我并不是真的要求重复,我要求的是从不同的角度进行解释。 【参考方案1】:第一季度的答案
没有 DAO 接口的编程。
假设您是一个庞大系统中的程序员,负责根据新需求添加组件。 从一开始,您的系统就可以与 mysql 一起使用。 由于一项新要求,您的项目经理要求您实施对 Oracle 的支持。 (当需要数据库支持时,应在 MySQL 和 Oracle 之间切换) MySQL 查询和 Oracle 查询不同。 您的系统未使用 hibernate 等 ORM 框架实现。 特别是没有 DAO 接口。所有都是与数据库通信的具体类。 现在您将使用包括与 Oracle 相关的查询在内的方法来实现 java 类。 你有麻烦了, 你的系统很大 包含复杂的业务逻辑 如果不检查服务层代码或文档,您将无法 知道(您不能更改服务层代码。) 我应该使用哪些名称实现哪些类/方法。 方法的输入参数应该是什么。 应该输出什么。 当然这需要几个月的时间,具体取决于系统的复杂性。 (缩短时间是软件项目的一个关键点)但使用 DAO 接口
您只需考虑 Oracle 特定的查询,因为 您只需实现 DAO 接口 自动 dao 接口让您保持在正轨 使用正确的方法名称 使用正确的输入参数 使用正确的返回变量 如果你出轨,编译会失败。 您可以通过 bean 注入轻松插入 oracle 或 mysql 支持【讨论】:
以上是关于请解释spring MVC,hibernate和Spring security的主要内容,如果未能解决你的问题,请参考以下文章
Hibernate - Spring Security - Spring MVC 版本
Spring 框架 MVC - Hibernate 异常是 java.lang.NoSuchMethodError
Spring MVC 和 Hibernate 使用 Junit 测试 DAO 层和 Service 层的步骤