在Java企业级开发中,Spring、SpringMVC和MyBatis(通常简称为SSM框架)是非常常用的技术组合。其中,Spring框架的核心功能之一就是依赖注入(Dependency Injection,简称DI)。依赖注入是一种设计模式,它允许对象之间的依赖关系由框架在运行时自动建立,从而实现解耦。
什么是依赖注入?
依赖注入是一种代码组织方式,通过这种方式,组件之间的依赖关系被外部管理,而不是在代码中直接创建。这有助于提高代码的模块化和可重用性。
为什么使用依赖注入?
- 解耦:减少组件间的依赖,使组件更独立。
- 易于测试:可以更容易地对组件进行单元测试。
- 提高代码可读性和可维护性。
SSM框架中的依赖注入
在SSM框架中,依赖注入主要通过Spring框架实现。下面将从零开始,详细介绍如何在SSM框架中配置依赖注入。
一、环境搭建
- 创建Maven项目:使用IDE(如IntelliJ IDEA或Eclipse)创建一个Maven项目。
- 添加依赖:在项目的
pom.xml文件中添加Spring、SpringMVC和MyBatis的依赖。
<dependencies>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.10</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.10</version>
</dependency>
<!-- MyBatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
<!-- MySQL驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
</dependency>
<!-- 数据源 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.23</version>
</dependency>
</dependencies>
- 创建配置文件:创建
applicationContext.xml和spring-mvc.xml。
二、配置Spring
在applicationContext.xml中配置Spring相关内容。
- 数据源配置:
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/db_name" />
<property name="username" value="root" />
<property name="password" value="password" />
</bean>
- SqlSessionFactory配置:
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:mybatis-config.xml" />
</bean>
- 扫描MyBatis接口:
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.example.mapper" />
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
</bean>
三、配置Spring MVC
在spring-mvc.xml中配置Spring MVC相关内容。
- 注解驱动:
<mvc:annotation-driven />
- 静态资源映射:
<mvc:resources mapping="/static/**" location="/static/" />
- 视图解析器:
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
</bean>
四、实现依赖注入
- 创建实体类:
public class User {
private Integer id;
private String name;
// getters and setters
}
- 创建Mapper接口:
public interface UserMapper {
User selectById(Integer id);
}
- 创建Service接口和实现类:
public interface UserService {
User selectById(Integer id);
}
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public User selectById(Integer id) {
return userMapper.selectById(id);
}
}
- 创建Controller:
@Controller
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/user/{id}")
public String getUserById(@PathVariable Integer id, Model model) {
User user = userService.selectById(id);
model.addAttribute("user", user);
return "userDetail";
}
}
五、总结
通过以上步骤,我们已经在SSM框架中实现了依赖注入。这样,我们就可以通过Spring框架在运行时自动创建和注入对象之间的依赖关系,从而提高代码的可维护性和可重用性。
希望这篇文章能够帮助你从零开始,学会在SSM框架中配置依赖注入。如果你有任何疑问,请随时提问。
