Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
S
springBoot
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
WitCloud
springBoot
Commits
282c99b1
Commit
282c99b1
authored
Jan 19, 2017
by
杨伊博
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
modify mybatis
parent
24b00248
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
174 additions
and
140 deletions
+174
-140
pom.xml
springboot-mybatis/pom.xml
+1
-1
pom.xml
springboot-security/pom.xml
+20
-10
JpaConfig.java
...curity/src/main/java/com/us/example/config/JpaConfig.java
+0
-61
MyBatisConfig.java
...ty/src/main/java/com/us/example/config/MyBatisConfig.java
+28
-0
MyBatisRepository.java
...rc/main/java/com/us/example/config/MyBatisRepository.java
+23
-0
MyBatisScannerConfig.java
...main/java/com/us/example/config/MyBatisScannerConfig.java
+17
-0
TransactionConfig.java
...rc/main/java/com/us/example/config/TransactionConfig.java
+25
-0
WebSecurityConfig.java
...rc/main/java/com/us/example/config/WebSecurityConfig.java
+5
-5
SysRoleRepositiory.java
.../src/main/java/com/us/example/dao/SysRoleRepositiory.java
+0
-12
SysUserRepository.java
...y/src/main/java/com/us/example/dao/SysUserRepository.java
+0
-13
UserDao.java
...ot-security/src/main/java/com/us/example/dao/UserDao.java
+10
-0
SysRole.java
...security/src/main/java/com/us/example/domain/SysRole.java
+2
-9
SysUser.java
...security/src/main/java/com/us/example/domain/SysUser.java
+10
-16
CustomUserService.java
.../main/java/com/us/example/security/CustomUserService.java
+12
-11
application.properties
...ngboot-security/src/main/resources/application.properties
+0
-2
UserDaoMapper.xml
...boot-security/src/main/resources/mapper/UserDaoMapper.xml
+21
-0
No files found.
springboot-mybatis/pom.xml
View file @
282c99b1
...
...
@@ -45,11 +45,11 @@
</exclusion>
</exclusions>
</dependency>
<!--mybatis-->
<dependency>
<groupId>
org.springframework
</groupId>
<artifactId>
spring-jdbc
</artifactId>
</dependency>
<!--mybatis-->
<dependency>
<groupId>
org.mybatis
</groupId>
<artifactId>
mybatis
</artifactId>
...
...
springboot-security/pom.xml
View file @
282c99b1
...
...
@@ -16,17 +16,15 @@
<properties>
<start-class>
com.us.Application
</start-class>
<maven.compiler.target>
1.8
</maven.compiler.target>
<maven.compiler.source>
1.8
</maven.compiler.source>
<mybatis.version>
3.2.7
</mybatis.version>
<mybatis-spring.version>
1.2.2
</mybatis-spring.version>
</properties>
<dependencies>
<!--springboot-->
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-data-jpa
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-security
</artifactId>
...
...
@@ -36,11 +34,6 @@
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-thymeleaf
</artifactId>
</dependency>
<dependency>
<groupId>
org.thymeleaf.extras
</groupId>
<artifactId>
thymeleaf-extras-springsecurity4
</artifactId>
</dependency>
<!--db-->
<dependency>
<groupId>
mysql
</groupId>
...
...
@@ -59,6 +52,23 @@
</exclusions>
</dependency>
<!--mybatis-->
<dependency>
<groupId>
org.springframework
</groupId>
<artifactId>
spring-jdbc
</artifactId>
</dependency>
<dependency>
<groupId>
org.mybatis
</groupId>
<artifactId>
mybatis
</artifactId>
<version>
${mybatis.version}
</version>
</dependency>
<dependency>
<groupId>
org.mybatis
</groupId>
<artifactId>
mybatis-spring
</artifactId>
<version>
${mybatis-spring.version}
</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
springboot-security/src/main/java/com/us/example/config/JpaConfig.java
deleted
100644 → 0
View file @
24b00248
package
com
.
us
.
example
.
config
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.ComponentScan
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.data.jpa.repository.config.EnableJpaRepositories
;
import
org.springframework.orm.jpa.JpaTransactionManager
;
import
org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean
;
import
org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter
;
import
org.springframework.transaction.PlatformTransactionManager
;
import
org.springframework.transaction.annotation.EnableTransactionManagement
;
import
javax.persistence.EntityManagerFactory
;
import
javax.sql.DataSource
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* Created by yangyibo on 17/1/18.
*/
@Configuration
@EnableJpaRepositories
(
"com.us.example.dao"
)
@EnableTransactionManagement
@ComponentScan
public
class
JpaConfig
{
@Autowired
private
DataSource
dataSource
;
@Bean
public
EntityManagerFactory
entityManagerFactory
()
{
HibernateJpaVendorAdapter
vendorAdapter
=
new
HibernateJpaVendorAdapter
();
//vendorAdapter.setShowSql(true);
//vendorAdapter.setGenerateDdl(true);
LocalContainerEntityManagerFactoryBean
factory
=
new
LocalContainerEntityManagerFactoryBean
();
factory
.
setJpaVendorAdapter
(
vendorAdapter
);
factory
.
setPackagesToScan
(
"com.us.example.domain"
);
factory
.
setDataSource
(
dataSource
);
Map
<
String
,
Object
>
jpaProperties
=
new
HashMap
<>();
jpaProperties
.
put
(
"hibernate.ejb.naming_strategy"
,
"org.hibernate.cfg.ImprovedNamingStrategy"
);
jpaProperties
.
put
(
"hibernate.jdbc.batch_size"
,
50
);
//jpaProperties.put("hibernate.show_sql",true);
factory
.
setJpaPropertyMap
(
jpaProperties
);
factory
.
afterPropertiesSet
();
return
factory
.
getObject
();
}
@Bean
public
PlatformTransactionManager
transactionManager
()
{
JpaTransactionManager
txManager
=
new
JpaTransactionManager
();
txManager
.
setEntityManagerFactory
(
entityManagerFactory
());
return
txManager
;
}
}
springboot-security/src/main/java/com/us/example/config/MyBatisConfig.java
0 → 100644
View file @
282c99b1
package
com
.
us
.
example
.
config
;
import
org.mybatis.spring.SqlSessionFactoryBean
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.ApplicationContext
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.ComponentScan
;
import
org.springframework.context.annotation.Configuration
;
import
javax.sql.DataSource
;
@Configuration
@ComponentScan
public
class
MyBatisConfig
{
@Autowired
private
DataSource
dataSource
;
@Bean
(
name
=
"sqlSessionFactory"
)
public
SqlSessionFactoryBean
sqlSessionFactory
(
ApplicationContext
applicationContext
)
throws
Exception
{
SqlSessionFactoryBean
sessionFactory
=
new
SqlSessionFactoryBean
();
sessionFactory
.
setDataSource
(
dataSource
);
// sessionFactory.setPlugins(new Interceptor[]{new PageInterceptor()});
sessionFactory
.
setMapperLocations
(
applicationContext
.
getResources
(
"classpath*:mapper/*.xml"
));
return
sessionFactory
;
}
}
springboot-security/src/main/java/com/us/example/config/MyBatisRepository.java
0 → 100644
View file @
282c99b1
package
com
.
us
.
example
.
config
;
import
java.lang.annotation.ElementType
;
import
java.lang.annotation.Retention
;
import
java.lang.annotation.RetentionPolicy
;
import
java.lang.annotation.Target
;
//@Retention: 定义注解的保留策略,注释类型的注释要保留
@Retention
(
RetentionPolicy
.
RUNTIME
)
//@Target说明了Annotation所修饰的对象范围:Annotation可被用于 packages、types(类、接口、枚举、Annotation类型)、类型成员(方法、构造方法、成员变量、枚举值)、方法参数和本地变量(如循环变量、catch参数)。在Annotation类型的声明中使用了target可更加明晰其修饰的目标。
//作用:用于描述注解的使用范围(即:被描述的注解可以用在什么地方)
//取值(ElementType)有:
//CONSTRUCTOR:用于描述构造器
//2.FIELD:用于描述域
//3.LOCAL_VARIABLE:用于描述局部变量
//4.METHOD:用于描述方法
//5.PACKAGE:用于描述包
//6.PARAMETER:用于描述参数
//7.TYPE:用于描述类、接口(包括注解类型) 或enum声明
@Target
(
ElementType
.
TYPE
)
public
@interface
MyBatisRepository
{
}
springboot-security/src/main/java/com/us/example/config/MyBatisScannerConfig.java
0 → 100644
View file @
282c99b1
package
com
.
us
.
example
.
config
;
import
org.mybatis.spring.mapper.MapperScannerConfigurer
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
@Configuration
public
class
MyBatisScannerConfig
{
@Bean
public
MapperScannerConfigurer
MapperScannerConfigurer
()
{
MapperScannerConfigurer
mapperScannerConfigurer
=
new
MapperScannerConfigurer
();
mapperScannerConfigurer
.
setBasePackage
(
"com.us.example.dao"
);
mapperScannerConfigurer
.
setAnnotationClass
(
MyBatisRepository
.
class
);
mapperScannerConfigurer
.
setSqlSessionFactoryBeanName
(
"sqlSessionFactory"
);
return
mapperScannerConfigurer
;
}
}
springboot-security/src/main/java/com/us/example/config/TransactionConfig.java
0 → 100644
View file @
282c99b1
package
com
.
us
.
example
.
config
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.ComponentScan
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.jdbc.datasource.DataSourceTransactionManager
;
import
org.springframework.transaction.PlatformTransactionManager
;
import
org.springframework.transaction.annotation.TransactionManagementConfigurer
;
import
javax.sql.DataSource
;
@Configuration
@ComponentScan
public
class
TransactionConfig
implements
TransactionManagementConfigurer
{
@Autowired
private
DataSource
dataSource
;
@Bean
(
name
=
"transactionManager"
)
@Override
public
PlatformTransactionManager
annotationDrivenTransactionManager
()
{
return
new
DataSourceTransactionManager
(
dataSource
);
}
}
\ No newline at end of file
springboot-security/src/main/java/com/us/example/config/WebSecurityConfig.java
View file @
282c99b1
...
...
@@ -14,27 +14,27 @@ import org.springframework.security.core.userdetails.UserDetailsService;
public
class
WebSecurityConfig
extends
WebSecurityConfigurerAdapter
{
@Bean
UserDetailsService
customUserService
(){
//
2
UserDetailsService
customUserService
(){
//
注册UserDetailsService 的bean
return
new
CustomUserService
();
}
@Override
protected
void
configure
(
AuthenticationManagerBuilder
auth
)
throws
Exception
{
auth
.
userDetailsService
(
customUserService
());
//
3
auth
.
userDetailsService
(
customUserService
());
//
user Details Service验证
}
@Override
protected
void
configure
(
HttpSecurity
http
)
throws
Exception
{
http
.
authorizeRequests
()
.
anyRequest
().
authenticated
()
//
4
.
anyRequest
().
authenticated
()
//
任何请求,登录后可以访问
.
and
()
.
formLogin
()
.
loginPage
(
"/login"
)
.
failureUrl
(
"/login?error"
)
.
permitAll
()
//
5
.
permitAll
()
//
登录页面用户任意访问
.
and
()
.
logout
().
permitAll
();
//
6
.
logout
().
permitAll
();
//
注销行为任意访问
}
...
...
springboot-security/src/main/java/com/us/example/dao/SysRoleRepositiory.java
deleted
100644 → 0
View file @
24b00248
package
com
.
us
.
example
.
dao
;
import
com.us.example.domain.SysRole
;
import
org.springframework.data.jpa.repository.JpaRepository
;
/**
* Created by yangyibo on 17/1/18.
*/
public
interface
SysRoleRepositiory
extends
JpaRepository
<
SysRole
,
Integer
>
{
SysRole
findById
(
Integer
id
);
}
springboot-security/src/main/java/com/us/example/dao/SysUserRepository.java
deleted
100644 → 0
View file @
24b00248
package
com
.
us
.
example
.
dao
;
import
com.us.example.domain.SysUser
;
import
org.springframework.data.jpa.repository.JpaRepository
;
/**
* Created by yangyibo on 17/1/18.
*/
public
interface
SysUserRepository
extends
JpaRepository
<
SysUser
,
Long
>
{
SysUser
findByUsername
(
String
username
);
}
springboot-security/src/main/java/com/us/example/dao/UserDao.java
0 → 100644
View file @
282c99b1
package
com
.
us
.
example
.
dao
;
import
com.us.example.config.MyBatisRepository
;
import
com.us.example.domain.SysUser
;
@MyBatisRepository
public
interface
UserDao
{
public
SysUser
findByUserName
(
String
username
);
}
springboot-security/src/main/java/com/us/example/domain/SysRole.java
View file @
282c99b1
package
com
.
us
.
example
.
domain
;
import
javax.persistence.Entity
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.Id
;
import
javax.persistence.Table
;
/**
* Created by yangyibo on 17/1/17.
*/
@Entity
@Table
(
name
=
"Sys_Role"
)
public
class
SysRole
{
@Id
@GeneratedValue
private
Integer
id
;
private
String
name
;
public
Integer
getId
()
{
...
...
springboot-security/src/main/java/com/us/example/domain/SysUser.java
View file @
282c99b1
package
com
.
us
.
example
.
domain
;
import
javax.persistence.*
;
import
java.util.List
;
/**
* Created by yangyibo on 17/1/17.
*/
@Entity
@Table
(
name
=
"Sys_User"
)
public
class
SysUser
{
//用户实体实现UserDetails接口,我门的用户实体即位 security 所使用的用户
@Id
@GeneratedValue
private
Long
id
;
private
Integer
id
;
private
String
username
;
private
String
password
;
private
Integer
role_id
;
public
Long
getId
()
{
private
List
<
SysRole
>
roles
;
public
Integer
getId
()
{
return
id
;
}
public
void
setId
(
Long
id
)
{
public
void
setId
(
Integer
id
)
{
this
.
id
=
id
;
}
...
...
@@ -42,13 +37,12 @@ public class SysUser { //用户实体实现UserDetails接口,我门的用户实
this
.
password
=
password
;
}
public
Integer
getRole_id
()
{
return
role_id
;
public
List
<
SysRole
>
getRoles
()
{
return
roles
;
}
public
void
setRole
_id
(
Integer
role_id
)
{
this
.
role
_id
=
role_id
;
public
void
setRole
s
(
List
<
SysRole
>
roles
)
{
this
.
role
s
=
roles
;
}
}
springboot-security/src/main/java/com/us/example/security/CustomUserService.java
View file @
282c99b1
package
com
.
us
.
example
.
security
;
import
com.us.example.dao.
SysRoleRepositiory
;
import
com.us.example.d
ao.SysUserRepository
;
import
com.us.example.dao.
UserDao
;
import
com.us.example.d
omain.SysRole
;
import
com.us.example.domain.SysUser
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.security.core.authority.SimpleGrantedAuthority
;
...
...
@@ -17,24 +17,25 @@ import java.util.List;
* Created by yangyibo on 17/1/18.
*/
@Service
public
class
CustomUserService
implements
UserDetailsService
{
//1
@Autowired
SysUserRepository
userRepository
;
public
class
CustomUserService
implements
UserDetailsService
{
//自定义UserDetailsService 接口
@Autowired
SysRoleRepositiory
sysRoleRepositiory
;
UserDao
userDao
;
@Override
public
UserDetails
loadUserByUsername
(
String
username
)
{
//
2
public
UserDetails
loadUserByUsername
(
String
username
)
{
//
重写loadUserByUsername 方法获得 userdetails 类型用户
SysUser
user
=
user
Repository
.
findByUsern
ame
(
username
);
SysUser
user
=
user
Dao
.
findByUserN
ame
(
username
);
if
(
user
==
null
){
throw
new
UsernameNotFoundException
(
"用户名不存在"
);
}
List
<
SimpleGrantedAuthority
>
authorities
=
new
ArrayList
<>();
//用于添加用户的权限。只要把用户权限添加到authorities 就万事大吉。
authorities
.
add
(
new
SimpleGrantedAuthority
(
sysRoleRepositiory
.
findById
(
user
.
getRole_id
()).
getName
()));
for
(
SysRole
role:
user
.
getRoles
())
{
authorities
.
add
(
new
SimpleGrantedAuthority
(
role
.
getName
()));
System
.
out
.
println
(
role
.
getName
());
}
return
new
org
.
springframework
.
security
.
core
.
userdetails
.
User
(
user
.
getUsername
(),
user
.
getPassword
(),
authorities
);
...
...
springboot-security/src/main/resources/application.properties
View file @
282c99b1
...
...
@@ -7,5 +7,3 @@ ms.db.maxActive=500
logging.level.org.springframework.security
=
INFO
spring.thymeleaf.cache
=
false
spring.jpa.hibernate.ddl-auto
=
update
spring.jpa.show-sql
=
true
\ No newline at end of file
springboot-security/src/main/resources/mapper/UserDaoMapper.xml
0 → 100644
View file @
282c99b1
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.us.example.dao.UserDao"
>
<resultMap
id=
"userMap"
type=
"com.us.example.domain.SysUser"
>
<id
property=
"id"
column=
"ID"
/>
<result
property=
"username"
column=
"username"
/>
<result
property=
"password"
column=
"PASSWORD"
/>
<collection
property=
"roles"
ofType=
"com.us.example.domain.SysRole"
>
<result
column=
"name"
property=
"name"
/>
</collection>
</resultMap>
<select
id=
"findByUserName"
parameterType=
"String"
resultMap=
"userMap"
>
select u.*
,r.name
from Sys_User u
LEFT JOIN sys_role_user sru on u.id= sru.Sys_User_id
LEFT JOIN Sys_Role r on sru.Sys_Role_id=r.id
where username= #{username}
</select>
</mapper>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment