application.properties

时间:2017-08-27 01:41:57

标签: spring spring-boot spring-security

我有一个使用Spring Security进行身份验证和授权的Web应用程序。

在我的securityConfiguration文件中,我有这些行

@Autowired
private DataSource dataSource;

@Value("${spring.queries.users-query}")
private String usersQuery;

@Value("${spring.queries.roles-query}")
private String rolesQuery;

以后用于身份验证。 在application.properties文件中,我有:

spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=
spring.datasource.username=
spring.datasource.password=
spring.jpa.show-sql= true

spring.datasource.testWhileIdle = true
spring.datasource.validationQuery = SELECT 1


spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect

spring.thymeleaf.mode=LEGACYHTML5
spring.thymeleaf.cache=false


spring.queries.users-query=select email, password from users where email=?
spring.queries.roles-query=select u.email, r.role from users u inner join 
user_role ur on(u.user_id=ur.user_id) inner join role r 
on(ur.role_id=r.role_id) where u.email=?

但我明白了:' spring.datasource.testWhileIdle'是一个未知的财产。你的意思是' spring.datasource.tomcat.abandon-when-percentage-full'? 还有一个关于spring.validationQuery以及spring.queries..it的下划线黄色的错误。 所以登录过程总是返回false。

任何人都可以帮我找出问题所在吗?我是Spring框架的新手,任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:1)

假设您正在使用连接池数据库,请更改

spring.datasource.testWhileIdle = true
spring.datasource.validationQuery = SELECT 1

到此:

spring.datasource.tomcat.test-while-idle=true
spring.datasource.tomcat.validation-query=SELECT 1

您可以在Spring Documentation - Working with Database.

中查看有关此内容的其他信息

同时将spring.queries.users-queryspring.queries.roles-query分别更改为myapp.queries.users-querymyapp.queries.roles-query。所有以spring.*开头的属性都是标准属性,所有可用的标准属性都列在Spring Documentation中。如果您需要使用自定义属性,请更改名称,例如使用myapp.mycustomproperty