错误代码如下:
The dependencies of some of the beans in the application context form a cycle:
sqlMapper defined in file [D:\dev-space\oauth2-demo1\target\classes\com\gbx\oauth2\demo1\common\SqlMapper.class]
↓
sqlSessionTemplate defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]
┌─────┐
| sqlSessionFactory defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]
↑ ↓
| authorizationServerConfiguration (field public org.springframework.security.authentication.AuthenticationManager com.gbx.oauth2.demo1.config.AuthorizationServerConfiguration.authenticationManager)
↑ ↓
| webSecurityConfiguration (field private com.gbx.oauth2.demo1.config.UserDetailsServiceConfiguration com.gbx.oauth2.demo1.config.WebSecurityConfiguration.userDetailsServiceConfiguration)
↑ ↓
| userDetailsServiceConfiguration (field private com.gbx.oauth2.demo1.service.TbUserService com.gbx.oauth2.demo1.config.UserDetailsServiceConfiguration.tbUserService)
↑ ↓
| tbUserServiceImpl (field private com.gbx.oauth2.demo1.dao.TbUserDao com.gbx.oauth2.demo1.service.impl.TbUserServiceImpl.tbUserDao)
↑ ↓
| tbUserDao defined in file [D:\dev-space\oauth2-demo1\target\classes\com\gbx\oauth2\demo1\dao\TbUserDao.class]
└─────┘
The dependencies of some of the beans in the application context form a cycle:
sqlMapper defined in file [D:\dev-space\oauth2-demo1\target\classes\com\gbx\oauth2\demo1\common\SqlMapper.class]
↓
sqlSessionTemplate defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]
┌─────┐
| sqlSessionFactory defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]
↑ ↓
| authorizationServerConfiguration (field public org.springframework.security.authentication.AuthenticationManager com.gbx.oauth2.demo1.config.AuthorizationServerConfiguration.authenticationManager)
↑ ↓
| webSecurityConfiguration (field private com.gbx.oauth2.demo1.config.UserDetailsServiceConfiguration com.gbx.oauth2.demo1.config.WebSecurityConfiguration.userDetailsServiceConfiguration)
↑ ↓
| userDetailsServiceConfiguration (field private com.gbx.oauth2.demo1.service.TbUserService com.gbx.oauth2.demo1.config.UserDetailsServiceConfiguration.tbUserService)
↑ ↓
| tbUserServiceImpl (field private com.gbx.oauth2.demo1.dao.TbUserDao com.gbx.oauth2.demo1.service.impl.TbUserServiceImpl.tbUserDao)
↑ ↓
| tbUserDao defined in file [D:\dev-space\oauth2-demo1\target\classes\com\gbx\oauth2\demo1\dao\TbUserDao.class]
└─────┘
解决办法:
启动类增加 dao 包扫描
@ComponentScan(basePackages = {"com.gbx.oauth2.demo1.dao"})
如下:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication
@ComponentScan(basePackages = {"com.gbx.oauth2.demo1.dao"})
public class Oauth2Demo1Application extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(Oauth2Demo1Application.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Oauth2Demo1Application.class);
}
}
结构如图: