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
e1476c69
Commit
e1476c69
authored
Jan 15, 2017
by
杨伊博
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
springCache is ok
parent
ddca0765
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
372 additions
and
0 deletions
+372
-0
pom.xml
springboot-Cache/pom.xml
+76
-0
Application.java
...gboot-Cache/src/main/java/com/us/example/Application.java
+22
-0
Person.java
...gboot-Cache/src/main/java/com/us/example/bean/Person.java
+60
-0
DBConfig.java
...t-Cache/src/main/java/com/us/example/config/DBConfig.java
+35
-0
JpaConfig.java
...-Cache/src/main/java/com/us/example/config/JpaConfig.java
+61
-0
CacheController.java
.../main/java/com/us/example/controller/CacheController.java
+45
-0
PersonRepository.java
...he/src/main/java/com/us/example/dao/PersonRepository.java
+11
-0
DemoService.java
...che/src/main/java/com/us/example/service/DemoService.java
+15
-0
DemoServiceImpl.java
...ain/java/com/us/example/service/Impl/DemoServiceImpl.java
+47
-0
No files found.
springboot-Cache/pom.xml
0 → 100644
View file @
e1476c69
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<modelVersion>
4.0.0
</modelVersion>
<groupId>
com.us
</groupId>
<artifactId>
springboot-Cache
</artifactId>
<version>
1.0-SNAPSHOT
</version>
<parent>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-parent
</artifactId>
<version>
1.3.0.RELEASE
</version>
</parent>
<properties>
<start-class>
com.us.Application
</start-class>
<maven.compiler.target>
1.8
</maven.compiler.target>
<maven.compiler.source>
1.8
</maven.compiler.source>
</properties>
<!-- Add typical dependencies for a web application -->
<dependencies>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-cache
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-data-jpa
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-web
</artifactId>
</dependency>
<dependency>
<groupId>
net.sf.ehcache
</groupId>
<artifactId>
ehcache
</artifactId>
</dependency>
<!--切换缓存-->
<!--<dependency>-->
<!--<groupId>com.google.guava</groupId>-->
<!--<artifactId>guava</artifactId>-->
<!--<version>18.0</version>-->
<!--</dependency>-->
<!--<dependency>-->
<!--<groupId>org.springframework.boot</groupId>-->
<!--<artifactId>spring-boot-starter-redis</artifactId>-->
<!--</dependency>-->
<!--db-->
<dependency>
<groupId>
mysql
</groupId>
<artifactId>
mysql-connector-java
</artifactId>
<version>
6.0.5
</version>
</dependency>
<dependency>
<groupId>
com.mchange
</groupId>
<artifactId>
c3p0
</artifactId>
<version>
0.9.5.2
</version>
<exclusions>
<exclusion>
<groupId>
commons-logging
</groupId>
<artifactId>
commons-logging
</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>
\ No newline at end of file
springboot-Cache/src/main/java/com/us/example/Application.java
0 → 100644
View file @
e1476c69
package
com
.
us
.
example
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.cache.annotation.EnableCaching
;
import
org.springframework.context.ConfigurableApplicationContext
;
import
org.springframework.context.annotation.ComponentScan
;
import
static
org
.
springframework
.
boot
.
SpringApplication
.*;
/**
* Created by yangyibo on 17/1/13.
*/
@ComponentScan
(
basePackages
=
"com.us.example"
)
@SpringBootApplication
@EnableCaching
public
class
Application
{
public
static
void
main
(
String
[]
args
)
{
ConfigurableApplicationContext
run
=
run
(
Application
.
class
,
args
);
}
}
springboot-Cache/src/main/java/com/us/example/bean/Person.java
0 → 100644
View file @
e1476c69
package
com
.
us
.
example
.
bean
;
import
javax.persistence.Entity
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.Id
;
import
javax.persistence.Table
;
/**
* Created by yangyibo on 17/1/13.
*/
@Entity
@Table
(
name
=
"Person"
)
public
class
Person
{
@Id
@GeneratedValue
private
Long
id
;
private
String
name
;
private
Integer
age
;
private
String
address
;
public
Person
()
{
super
();
}
public
Person
(
Long
id
,
String
name
,
Integer
age
,
String
address
)
{
super
();
this
.
id
=
id
;
this
.
name
=
name
;
this
.
age
=
age
;
this
.
address
=
address
;
}
public
Long
getId
()
{
return
id
;
}
public
void
setId
(
Long
id
)
{
this
.
id
=
id
;
}
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
Integer
getAge
()
{
return
age
;
}
public
void
setAge
(
Integer
age
)
{
this
.
age
=
age
;
}
public
String
getAddress
()
{
return
address
;
}
public
void
setAddress
(
String
address
)
{
this
.
address
=
address
;
}
}
springboot-Cache/src/main/java/com/us/example/config/DBConfig.java
0 → 100644
View file @
e1476c69
package
com
.
us
.
example
.
config
;
/**
* Created by yangyibo on 17/1/13.
*/
import
java.beans.PropertyVetoException
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.core.env.Environment
;
import
com.mchange.v2.c3p0.ComboPooledDataSource
;
@Configuration
public
class
DBConfig
{
@Autowired
private
Environment
env
;
@Bean
(
name
=
"dataSource"
)
public
ComboPooledDataSource
dataSource
()
throws
PropertyVetoException
{
ComboPooledDataSource
dataSource
=
new
ComboPooledDataSource
();
dataSource
.
setDriverClass
(
env
.
getProperty
(
"ms.db.driverClassName"
));
dataSource
.
setJdbcUrl
(
env
.
getProperty
(
"ms.db.url"
));
dataSource
.
setUser
(
env
.
getProperty
(
"ms.db.username"
));
dataSource
.
setPassword
(
env
.
getProperty
(
"ms.db.password"
));
dataSource
.
setMaxPoolSize
(
20
);
dataSource
.
setMinPoolSize
(
5
);
dataSource
.
setInitialPoolSize
(
10
);
dataSource
.
setMaxIdleTime
(
300
);
dataSource
.
setAcquireIncrement
(
5
);
dataSource
.
setIdleConnectionTestPeriod
(
60
);
return
dataSource
;
}
}
springboot-Cache/src/main/java/com/us/example/config/JpaConfig.java
0 → 100644
View file @
e1476c69
package
com
.
us
.
example
.
config
;
import
java.util.HashMap
;
import
java.util.Map
;
import
javax.persistence.EntityManagerFactory
;
import
javax.sql.DataSource
;
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
;
/**
* Created by yangyibo on 17/1/13.
*/
@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.bean"
);
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-Cache/src/main/java/com/us/example/controller/CacheController.java
0 → 100644
View file @
e1476c69
package
com
.
us
.
example
.
controller
;
import
com.us.example.bean.Person
;
import
com.us.example.service.DemoService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* Created by yangyibo on 17/1/13.
*/
@RestController
public
class
CacheController
{
@Autowired
private
DemoService
demoService
;
//http://localhost:8080/put?name=abel&age=23&address=shanghai
@RequestMapping
(
"/put"
)
public
Person
put
(
Person
person
){
return
demoService
.
save
(
person
);
}
//http://localhost:8080/able?id=1
@RequestMapping
(
"/able"
)
@ResponseBody
public
Person
cacheable
(
Person
person
){
return
demoService
.
findOne
(
person
);
}
//http://localhost:8080/evit?id=1
@RequestMapping
(
"/evit"
)
public
String
evit
(
Long
id
){
demoService
.
remove
(
id
);
return
"ok"
;
}
}
\ No newline at end of file
springboot-Cache/src/main/java/com/us/example/dao/PersonRepository.java
0 → 100644
View file @
e1476c69
package
com
.
us
.
example
.
dao
;
import
com.us.example.bean.Person
;
import
org.springframework.data.jpa.repository.JpaRepository
;
/**
* Created by yangyibo on 17/1/13.
*/
public
interface
PersonRepository
extends
JpaRepository
<
Person
,
Long
>
{
}
springboot-Cache/src/main/java/com/us/example/service/DemoService.java
0 → 100644
View file @
e1476c69
package
com
.
us
.
example
.
service
;
import
com.us.example.bean.Person
;
/**
* Created by yangyibo on 17/1/13.
*/
public
interface
DemoService
{
public
Person
save
(
Person
person
);
public
void
remove
(
Long
id
);
public
Person
findOne
(
Person
person
);
}
springboot-Cache/src/main/java/com/us/example/service/Impl/DemoServiceImpl.java
0 → 100644
View file @
e1476c69
package
com
.
us
.
example
.
service
.
Impl
;
import
com.us.example.bean.Person
;
import
com.us.example.dao.PersonRepository
;
import
com.us.example.service.DemoService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.cache.annotation.CacheEvict
;
import
org.springframework.cache.annotation.CachePut
;
import
org.springframework.cache.annotation.Cacheable
;
import
org.springframework.stereotype.Service
;
/**
* Created by yangyibo on 17/1/13.
*/
@Service
public
class
DemoServiceImpl
implements
DemoService
{
@Autowired
private
PersonRepository
personRepository
;
@Override
//@CachePut缓存新增的或更新的数据到缓存,其中缓存名字是 people 。数据的key是person的id
@CachePut
(
value
=
"people"
,
key
=
"#person.id"
)
public
Person
save
(
Person
person
)
{
Person
p
=
personRepository
.
save
(
person
);
System
.
out
.
println
(
"为id、key为:"
+
p
.
getId
()+
"数据做了缓存"
);
return
p
;
}
@Override
//@CacheEvict 从缓存people中删除key为id 的数据
@CacheEvict
(
value
=
"people"
)
public
void
remove
(
Long
id
)
{
System
.
out
.
println
(
"删除了id、key为"
+
id
+
"的数据缓存"
);
//这里不做实际删除操作
}
@Override
//@Cacheable缓存key为person 的id 数据到缓存people 中,如果没有指定key则方法参数作为key保存到缓存中。
@Cacheable
(
value
=
"people"
,
key
=
"#person.id"
)
public
Person
findOne
(
Person
person
)
{
Person
p
=
personRepository
.
findOne
(
person
.
getId
());
System
.
out
.
println
(
"为id、key为:"
+
p
.
getId
()+
"数据做了缓存"
);
return
p
;
}
}
\ 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