下面是关于整合Spring、Spring MVC和MyBatis的详细攻略,包含两个示例说明。
最优雅地整合 Spring & Spring MVC & MyBatis 搭建 Java 企业级应用
Spring、Spring MVC和MyBatis是Java企业级应用开发中常用的框架。在本文中,我们将介绍如何使用这三个框架进行整合,以搭建一个Java企业级应用。
步骤1:添加依赖
首先,我们需要在pom.xml
文件中添加Spring、Spring MVC和MyBatis的依赖。以下是一个简单的依赖示例:
<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.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.7</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
</dependencies>
步骤2:配置Spring
接下来,我们需要在Spring配置文件中配置Spring和MyBatis。在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.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC"/>
<property name="username" value="root"/>
<property name="password" value="password"/>
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="typeAliasesPackage" value="com.example.model"/>
<property name="mapperLocations" value="classpath*:com/example/mapper/*.xml"/>
</bean>
<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory"/>
</bean>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<tx:annotation-driven/>
</beans>
在上面的配置文件中,我们使用了<context:component-scan>
元素来扫描com.example
包中的组件。我们还使用了<bean>
元素来配置数据源和MyBatis会话工厂。我们还使用了<tx:annotation-driven>
元素来启用注解驱动的事务管理。
步骤3:配置SpringMVC
接下来,我们需要SpringMVC配置文件中配置SpringMVC。在src/main/resources
目录下创建一个名为spring-servlet.xml
的文件,并添加以下内容:
<beans xmlns="http://www.springframework.org/schema/"
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:使用MyBatis进行数据访问
以下是一个示例,演示如何使用MyBatis进行数据访问:
@Repository
public class UserDaoImpl implements UserDao {
@Autowired
private SqlSessionTemplate sqlSessionTemplate;
@Override
public User findById(Long id) {
return sqlSessionTemplate.selectOne("com.example.mapper.UserMapper.findById", id);
}
@Override
public void save(User user) {
sqlSessionTemplate.insert("com.example.mapper.UserMapper.save", user);
}
@Override
public void update(User user) {
sqlSessionTemplate.update("com.example.mapper.UserMapper.update", user);
}
@Override
public void delete(User user) {
sqlSessionTemplate.delete("com.example.mapper.UserMapper.delete", user);
}
}
在上面的示例中,我们使用了MyBatis的SqlSessionTemplate
对象来进行数据访问。
示例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 & Spring MVC & MyBatis 搭建 Java 企业级应用(附源码) - Python技术站