Я запускаю приложение SpringBoot с MyBatis.
И у меня есть маппер MyBatis, подобный этому:
@Component
@Mapper
public interface AccountMapper {
@Insert("insert into dc_account(identification,nickname,username,password) values (#{identification},#{nickname},#{username},#{password})")
public int insert(Account account);
@Update("update dc_account set identification=#{identification},nickname=#{nickname},username=#{username},password=#{password}")
public int update(Account account);
@Select("select * from dc_account where username=#{username} and password=#{password}")
@Results(
id = "account",
value = {
@Result(property = "identification", column = "identification"),
@Result(property = "nickname", column = "nickname"),
@Result(property = "username", column = "username"),
@Result(property = "password", column = "password")
}
)
Account select(Account account);
}
Класс учетной записи:
@Component
@SessionScope(proxyMode = ScopedProxyMode.TARGET_CLASS)
public class Account{
@Value("1")
int identification;
@Value("1")
String nickname;
@Value("1")
String username;
@Value("1")
String password;
//getter and setter
}
Контроллер:
@Autowired
AccountMapper accountMapper;
@Autowired
Account account;
//.......
@RequestMapping("/login")
Account login(
@RequestParam("username")String username,
@RequestParam("password")String password){
account.setUsername(username);
account.setPassword(password);
accountMapper.select(account);
return account;
}
И когда я ввожу URL localhost:8080/login?username=1&password=1
Он сообщает
и если я удаляю аннотацию @SessionScope
class Account
все работает отлично.
Я не знаю, что пошло не так ... кто-нибудь может дать какой-нибудь совет?