下面是关于基于Spring+SpringMVC+Hibernate整合的详细攻略,包含两个示例说明。
基于Spring+SpringMVC+Hibernate整合深入剖析
Spring+SpringMVC+Hibernate是一种流行的Java Web开发框架组合,它可以帮助我们快速构建Web应用程序。在本文中,我们将介绍如何使用Spring+SpringMVC+Hibernate进行整合。
步骤1:添加依赖
首先,我们需要在pom.xml
文件中添加Spring、SpringMVC和Hibernate的依赖。以下是一个简单的依赖示例:
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.3.9</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.9</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.5.7.Final</version>
</dependency>
</dependencies>
步骤2:配置Spring
接下来,我们需要在Spring配置文件中配置Spring和Hibernate。在src/main/resources
目录下创建一个名为applicationContext.xml
的文件,并添加以下内容:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
<context:component-scan base-package="com.example"/>
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test"/>
<property name="username" value="root"/>
<property name="password" value="password"/>
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="packagesToScan" value="com.example.model"/>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<tx:annotation-driven/>
</beans>
在上面的配置文件中,我们使用了<context:component-scan>
元素来扫描com.example
包中的组件。我们还使用了<bean>
元素来配置数据源和Hibernate会话工厂。我们还使用了<tx:annotation-driven>
元素来启用注解驱动的事务管理。
步骤3:配置SpringMVC
接下来,我们需要在SpringMVC配置文件中配置SpringMVC。在src/main/resources
目录下创建一个名为spring-servlet.xml
的文件,并添加以下内容:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<context:component-scan base-package="com.example"/>
<mvc:annotation-driven/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
</bean>
</beans>
在上面的配置文件中,我们使用了<context:component-scan>
元素来扫描com.example
包中的组件。我们还使用了<mvc:annotation-driven>
元素来启用注解驱动的Spring MVC。我们还使用了<bean>
元素来配置视图解析器。
示例1:使用Hibernate进行数据访问
以下是一个示例,演示如何使用Hibernate进行数据访问:
@Repository
public class UserDaoImpl implements UserDao {
@Autowired
private SessionFactory sessionFactory;
@Override
public User findById(Long id) {
Session session = sessionFactory.getCurrentSession();
User user = session.get(User.class, id);
return user;
}
@Override
public void save(User user) {
Session session = sessionFactory.getCurrentSession();
session.save(user);
}
@Override
public void update(User user) {
Session session = sessionFactory.getCurrentSession();
session.update(user);
}
@Override
public void delete(User user) {
Session session = sessionFactory.getCurrentSession();
session.delete(user);
}
}
在上面的示例中,我们使用了Hibernate的Session
对象来进行数据访问。
示例2:使用SpringMVC进行Web开发
以下是一个示例,演示如何使用SpringMVC进行Web开发:
@Controller
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/users/{id}")
public String getUser(@PathVariable Long id, Model model) {
User user = userService.findById(id);
model.addAttribute("user", user);
return "user";
}
@PostMapping("/users")
public String createUser(@ModelAttribute User user) {
userService.save(user);
return "redirect:/users/" + user.getId();
}
@PutMapping("/users/{id}")
public String updateUser(@PathVariable Long id, @ModelAttribute User user) {
user.setId(id);
userService.update(user);
return "redirect:/users/" + id;
}
@DeleteMapping("/users/{id}")
public String deleteUser(@PathVariable Long id) {
User user = userService.findById(id);
userService.delete(user);
return "redirect:/users";
}
}
在上面的示例中,我们使用了SpringMVC的@GetMapping
、@PostMapping
、@PutMapping
和@DeleteMapping
注解来处理GET、POST、PUT和DELETE请求。我们还使用了@ModelAttribute
注解来获取请求参数,并使用Model
对象来传递数据到视图中。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于spring+springmvc+hibernate 整合深入剖析 - Python技术站