Spring5+SpringMVC+Hibernate5整合的实现
Spring5+SpringMVC+Hibernate5整合是一种常见的Java Web开发框架,它可以帮助我们快速开发Web应用程序。本文将详细讲解Spring5+SpringMVC+Hibernate5整合的实现,并提供两个示例说明。
实现步骤
步骤一:添加依赖
首先,我们需要在项目中添加Spring、SpringMVC和Hibernate的依赖。可以通过以下方式添加:
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.9</version>
</dependency>
<!-- SpringMVC -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.9</version>
</dependency>
<!-- Hibernate -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.5.7.Final</version>
</dependency>
步骤二:配置Spring
在Spring中,我们需要配置数据源和事务管理器。下面是一个Spring的示例:
<!-- 配置数据源 -->
<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="root"/>
</bean>
<!-- 配置SessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="packagesToScan" value="com.example.entity"/>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_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>
在上面的示例中,我们使用
步骤三:配置SpringMVC
在SpringMVC中,我们需要配置视图解析器和处理器映射器。下面是一个SpringMVC的示例:
<!-- 配置视图解析器 -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
</bean>
<!-- 配置处理器映射器 -->
<bean id="handlerMapping" class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
在上面的示例中,我们使用
步骤四:编写实体类和DAO类
在Hibernate中,我们需要编写实体类和DAO类。下面是一个实体类和DAO类的示例:
@Entity
@Table(name = "user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "username")
private String username;
@Column(name = "password")
private String password;
// 省略getter和setter方法
}
@Repository
public class UserDaoImpl implements UserDao {
@Autowired
private SessionFactory sessionFactory;
@Override
public void save(User user) {
sessionFactory.getCurrentSession().save(user);
}
@Override
public User findById(Long id) {
return sessionFactory.getCurrentSession().get(User.class, id);
}
// 省略其他方法
}
在上面的示例中,我们定义了一个名为User的实体类,并使用@Entity和@Table注解来指定表名和字段名。我们还定义了一个名为UserDaoImpl的DAO类,并使用@Repository注解将其注册为Spring组件。我们使用@Autowired注解来注入SessionFactory对象,并使用getCurrentSession方法来获取当前Session对象。
步骤五:编写控制器类
在SpringMVC中,我们需要编写控制器类。下面是一个控制器类的示例:
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/{id}")
public String findById(@PathVariable Long id, Model model) {
User user = userService.findById(id);
model.addAttribute("user", user);
return "user";
}
@PostMapping("/")
public String save(User user) {
userService.save(user);
return "redirect:/user/" + user.getId();
}
}
在上面的示例中,我们定义了一个名为UserController的控制器类,并使用@Controller和@RequestMapping注解来指定请求路径。我们使用@Autowired注解来注入UserService对象,并使用@GetMapping和@PostMapping注解来处理GET和POST请求。我们还使用@PathVariable注解来获取URL路径中的参数值,并使用Model对象来传递数据到视图中。
步骤六:编写服务类
在Spring中,我们可以使用服务类来封装业务逻辑。下面是一个服务类的示例:
@Service
@Transactional
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
public void save(User user) {
userDao.save(user);
}
@Override
public User findById(Long id) {
return userDao.findById(id);
}
// 省略其他方法
}
在上面的示例中,我们定义了一个名为UserServiceImpl的服务类,并使用@Service注解将其注册为Spring组件。我们使用@Autowired注解来注入UserDao对象,并使用@Transactional注解来开启事务。
示例
以下是两个示例演示如何实现Spring5+SpringMVC+Hibernate5整合:
示例一
-
创建一个名为springmvc-hibernate的Maven项目。
-
添加Spring、SpringMVC和Hibernate的依赖。
-
配置Spring、SpringMVC和Hibernate。
-
编写User实体类和UserDao接口。
-
编写UserDaoImpl实现类。
-
编写UserService接口和UserServiceImpl实现类。
-
编写UserController控制器类。
-
编写user.jsp和add.jsp视图页面。
-
配置web.xml文件。
-
打包项目并部署到Tomcat服务器上。
-
访问http://localhost:8080/springmvc-hibernate/user/1,即可查看用户信息。
示例二
-
创建一个名为springmvc-hibernate的Maven项目。
-
添加Spring、SpringMVC和Hibernate的依赖。
-
配置Spring、SpringMVC和Hibernate。
-
编写User实体类和UserDao接口。
-
编写UserDaoImpl实现类。
-
编写UserService接口和UserServiceImpl实现类。
-
编写UserController控制器类。
-
编写user.jsp和add.jsp视图页面。
-
使用Spring Boot打包项目。
-
将打包后的jar包上传到服务器上。
-
在服务器上运行jar包。
-
访问http://服务器IP地址:8080/user/1,即可查看用户信息。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring5+SpringMvc+Hibernate5整合的实现 - Python技术站