提交 6abc6d6e 编写于 作者: shuzheng5201314's avatar shuzheng5201314

update

上级 7e4e6777
此差异已折叠。
......@@ -57,6 +57,37 @@
<artifactId>springfox-swagger-ui</artifactId>
<version>2.2.2</version>
</dependency>
<!-- jdbc -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- mysql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.21</version>
</dependency>
<!-- jpa -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>persistence-api</artifactId>
<version>1.0.2</version>
</dependency>
<!-- redis -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-redis</artifactId>
</dependency>
<!-- mongodb -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
</dependencies>
<build>
......
因为 它太大了无法显示 source diff 。你可以改为 查看blob
package com.zheng.springboot;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.jdbc.core.JdbcTemplate;
import javax.sql.DataSource;
/**
* Created by ZhangShuzheng on 2016/11/17.
*/
@Configuration
public class DataSourceConfig {
@Bean(name = "primaryDataSource")
@Qualifier("primaryDataSource")
@ConfigurationProperties(prefix="spring.datasource.primary")
public DataSource primaryDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "secondaryDataSource")
@Qualifier("secondaryDataSource")
@Primary
@ConfigurationProperties(prefix="spring.datasource.secondary")
public DataSource secondaryDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "primaryJdbcTemplate")
public JdbcTemplate primaryJdbcTemplate(
@Qualifier("primaryDataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
@Bean(name = "secondaryJdbcTemplate")
public JdbcTemplate secondaryJdbcTemplate(
@Qualifier("secondaryDataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
}
package com.zheng.springboot.domain;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
/**
* Created by ZhangShuzheng on 2016/11/16.
*/
@Entity
public class User {
@Id
@GeneratedValue
private Long id;
@Column(nullable = false)
private String name;
@Column(nullable = false)
private Integer age;
public Long getId() {
......
package com.zheng.springboot.service;
import com.zheng.springboot.domain.User;
import org.springframework.data.jpa.repository.JpaRepository;
/**
* Created by ZhangShuzheng on 2016/11/17.
*/
public interface UserRepository extends JpaRepository<User, Long> {
User findByName(String name);
User findByNameAndAge(String name, Integer age);
// @Query("from user u where u.name=:name")
// User findUser(@Param("name") String name);
}
package com.zheng.springboot.service;
/**
* Created by ZhangShuzheng on 2016/11/17.
*/
public interface UserService {
/**
* 新增一个用户
* @param name
* @param age
*/
void create(String name, Integer age);
/**
* 根据name删除一个用户高
* @param name
*/
void deleteByName(String name);
/**
* 获取用户总量
*/
Integer getAllUsers();
/**
* 删除所有用户
*/
void deleteAllUsers();
}
package com.zheng.springboot.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
/**
* Created by ZhangShuzheng on 2016/11/17.
*/
@Service
public class UserServiceImpl implements UserService {
@Autowired
@Qualifier("primaryJdbcTemplate")
private JdbcTemplate jdbcTemplate;
@Override
public void create(String name, Integer age) {
jdbcTemplate.update("insert into USER(NAME, AGE) values(?, ?)", name, age);
}
@Override
public void deleteByName(String name) {
jdbcTemplate.update("delete from USER where NAME = ?", name);
}
@Override
public Integer getAllUsers() {
return jdbcTemplate.queryForObject("select count(1) from USER", Integer.class);
}
@Override
public void deleteAllUsers() {
jdbcTemplate.update("delete from USER");
}
}
package com.zheng.springboot.web;
import com.zheng.springboot.domain.User;
import com.zheng.springboot.service.UserService;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.*;
......@@ -15,6 +17,9 @@ import java.util.*;
@RequestMapping(value="/users") // 通过这里配置使下面的映射都在/users下
public class UserController {
@Autowired
private UserService userSerivce;
// 创建线程安全的Map
static Map<Long, User> users = Collections.synchronizedMap(new HashMap<Long, User>());
......@@ -29,6 +34,7 @@ public class UserController {
@RequestMapping(value="", method=RequestMethod.POST)
public String postUser(@RequestBody User user) {
users.put(user.getId(), user);
userSerivce.create(user.getName(), user.getAge());
return "success";
}
@ApiOperation(value="获取用户详细信息", notes="根据url的id来获取用户详细信息")
......
########## 单数据源 ##########
#spring.datasource.url=jdbc:mysql://localhost:3306/zheng
#spring.datasource.username=root
#spring.datasource.password=123456
#spring.datasource.driver-class-name=com.mysql.jdbc.Driver
########## 多数据源 ##########
spring.datasource.primary.url=jdbc:mysql://localhost:3306/zheng
spring.datasource.primary.username=root
spring.datasource.primary.password=123456
spring.datasource.primary.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.secondary.url=jdbc:mysql://localhost:3306/zheng
spring.datasource.secondary.username=root
spring.datasource.secondary.password=123456
spring.datasource.secondary.driver-class-name=com.mysql.jdbc.Driver
########## jpa ##########
spring.jpa.properties.hibernate.hbm2ddl.auto=update
########## 日志 ##########
logging.file=springboot.log
########## REDIS (RedisProperties) ##########
# Redis数据库索引(默认为0)
spring.redis.database=0
# Redis服务器地址
spring.redis.host=redis-11291.c8.us-east-1-4.ec2.cloud.redislabs.com
# Redis服务器连接端口
spring.redis.port=11291
# Redis服务器连接密码(默认为空)
spring.redis.password=123456
# 连接池最大连接数(使用负值表示没有限制)
spring.redis.pool.max-active=8
# 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.pool.max-wait=-1
# 连接池中的最大空闲连接
spring.redis.pool.max-idle=8
# 连接池中的最小空闲连接
spring.redis.pool.min-idle=0
# 连接超时时间(毫秒)
spring.redis.timeout=0
\ No newline at end of file
package com.zheng;
import com.zheng.springboot.web.UserController;
import org.junit.Before;
import com.zheng.springboot.SpringbootApplication;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
@RunWith(SpringRunner.class)
@SpringBootTest
@SpringBootTest(classes = SpringbootApplication.class)
public class SpringbootApplicationTests {
private MockMvc mvc;
@Before
public void setUp() throws Exception {
mvc = MockMvcBuilders.standaloneSetup(new UserController()).build();
}
// @Test
// public void testUserController() throws Exception {
// // 测试UserController
// RequestBuilder request = null;
//
// // 1、get查一下user列表,应该为空
// request = get("/users/");
// mvc.perform(request)
// .andExpect(status().isOk())
// .andExpect(content().string(equalTo("[]")));
//
// // 2、post提交一个user
// request = post("/users/")
// .param("id", "1")
// .param("name", "测试大师")
// .param("age", "20");
// mvc.perform(request)
// .andExpect(content().string(equalTo("success")));
//
// // 3、get获取user列表,应该有刚才插入的数据
// request = get("/users/");
// mvc.perform(request)
// .andExpect(status().isOk())
// .andExpect(content().string(equalTo("[{\"id\":1,\"name\":\"测试大师\",\"age\":20}]")));
//
// // 4、put修改id为1的user
// request = put("/users/1")
// .param("name", "测试终极大师")
// .param("age", "30");
// mvc.perform(request)
// .andExpect(content().string(equalTo("success")));
//
// // 5、get一个id为1的user
// request = get("/users/1");
// mvc.perform(request)
// .andExpect(content().string(equalTo("{\"id\":1,\"name\":\"测试终极大师\",\"age\":30}")));
//
// // 6、del删除id为1的user
// request = delete("/users/1");
// mvc.perform(request)
// .andExpect(content().string(equalTo("success")));
//
// // 7、get查一下user列表,应该为空
// request = get("/users/");
// mvc.perform(request)
// .andExpect(status().isOk())
// .andExpect(content().string(equalTo("[]")));
// }
@Autowired
private StringRedisTemplate stringRedisTemplate;
@Test
public void contextLoads() {
System.out.println("=============================== redis start ===============================");
// 保存字符串
stringRedisTemplate.opsForValue().set("aaa", "111");
Assert.assertEquals("111", stringRedisTemplate.opsForValue().get("aaa"));
System.out.println("=============================== redis end ===============================");
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册