使用spring框架注入用户登录service,完成用户登录验证,并注入dao对象
时间: 2023-05-28 09:02:10 浏览: 65
首先,需要创建一个UserServiceImpl类实现UserService接口,代码如下:
```
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
public boolean login(String username, String password) {
User user = userDao.findByUsername(username);
if(user != null && user.getPassword().equals(password)) {
return true;
} else {
return false;
}
}
}
```
其中,@Autowired注解表示自动注入UserDao对象,@Service注解表示这是一个Service类。
其次,在dao包下创建一个UserDao接口和一个UserDaoImpl类,代码如下:
UserDao接口:
```
public interface UserDao {
User findByUsername(String username);
}
```
UserDaoImpl实现类:
```
@Repository
public class UserDaoImpl implements UserDao {
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public User findByUsername(String username) {
String sql = "select * from user where username = ?";
try {
User user = jdbcTemplate.queryForObject(sql, new Object[]{username}, new BeanPropertyRowMapper<>(User.class));
return user;
} catch (EmptyResultDataAccessException e) {
return null;
}
}
}
```
其中,@Autowired注解表示自动注入JdbcTemplate对象,@Repository注解表示这是一个dao类。
最后,在spring配置文件中配置userService和userDao的注入,代码如下:
```
<context:component-scan base-package="com.xxx"/>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="url" value="jdbc:mysql://localhost:3306/test"/>
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"/>
</bean>
<bean id="userDao" class="com.xxx.dao.UserDaoImpl"/>
<bean id="userService" class="com.xxx.service.UserServiceImpl">
<property name="userDao" ref="userDao"/>
</bean>
```
其中,<context:component-scan>标签用于自动扫描指定包下的类并将其纳入Spring容器管理,<bean>标签用于手动注入依赖对象。
现在,userService和userDao对象都已经成功注入,并可在代码中使用。