敏捷工具
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

268 lines
7.3 KiB

package com.whn.hellospring;
import com.whn.hellospring.mapper.CoffeeMapper;
import com.whn.hellospring.model.CoffeeDO;
import com.whn.hellospring.model.CoffeeOrderDO;
import com.whn.hellospring.model.OrderState;
import com.whn.hellospring.repository.CoffeeOrderRepository;
import com.whn.hellospring.repository.CoffeeRepository;
import com.whn.hellospring.service.CoffeeOrderService;
import com.whn.hellospring.service.CoffeeService;
import com.whn.hellospring.service.JuheService;
import org.joda.money.CurrencyUnit;
import org.joda.money.Money;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
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;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import lombok.extern.slf4j.Slf4j;
import redis.clients.jedis.Jedis;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
@ComponentScan("com")
@SpringBootApplication
@RestController
@Slf4j
@EnableJpaRepositories
@EnableTransactionManagement
public class HelloSpringApplication extends SpringBootServletInitializer implements ApplicationRunner {
@Autowired
private CoffeeRepository coffeeRepository;
@Autowired
private CoffeeOrderRepository orderRepository;
@Autowired
private CoffeeMapper coffeeMapper;
@Autowired
private CoffeeService coffeeService;
@Autowired
private CoffeeOrderService orderService;
@Autowired
private JuheService juheService;
public static void main(String[] args) {
SpringApplication.run(HelloSpringApplication.class, args);
}
// 继承SpringBootServletInitializer 实现configure 方便打war 外部服务器部署。
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(HelloSpringApplication.class);
}
@Transactional
@Override
public void run(ApplicationArguments args) throws Exception {
// initOrders();
// findOrders();
// testMybatis();
// breakPage();
// bucks();//初步测试
// oil();
// testRedis();
}
private void testRedis() {
Jedis jedis = new Jedis("192.168.0.217");
jedis.auth("root");//加入这一段代码
System.out.println("Server is running: "+jedis.ping());
System.out.println("connection to server sucessfully");
jedis.set("title","hellword");
System.out.println(jedis.get("title"));
}
private void oil() {
juheService.getOilPrice();
}
private void bucks() {
log.info("findAllCoffee{}",coffeeRepository.findAll());
Optional<CoffeeDO> latte = coffeeService.findOneCoffee("Latte");
if (latte.isPresent()){
// CoffeeOrderDO order = orderService.createOrder( latte.get());
// log.info("update",orderService.updateState(order,OrderState.INIT));
// log.info("update",orderService.updateState(order,OrderState.PAID));
}
}
/**
* 分页测试
* Mybatis PageHelper
*/
// private void breakPage() {
// //第一页数据
// coffeeMapper.findAllWithRowBounds(new RowBounds(1,3))
// .forEach(c->log.info("page(1) Coffee{}",c));
//
// //第二页数据
// coffeeMapper.findAllWithRowBounds(new RowBounds(2,3))
// .forEach(c->log.info("page(2) Coffee{}",c));
//
// log.info("=============================");
//
// //page传递为0的时候会取出所有数据
// coffeeMapper.findAllWithRowBounds(new RowBounds(1,0))
// .forEach(c->log.info("Page(1) 所有数据 Coffee{}",c));
//
// log.info("=============================");
//
// //使用参数来获取
// coffeeMapper.findAllWithParam(1,3)
// .forEach(c->log.info("Page(1) 使用参数来获取3 Coffee{}",c));
//
//
// List<Coffee> list = coffeeMapper.findAllWithParam(2,3);
// PageInfo<Coffee> page = new PageInfo<>(list);
// log.info("page{}",page);
//
// }
// private void testMybatis() {
// Coffee c = Coffee.builder().name("espresso")
// .price(Money.of(CurrencyUnit.of("CNY"),20.0))
// .build();
//
// int count = coffeeMapper.save(c);
// log.info("Save{} coffee:{}",count,c);
//
// c = Coffee.builder().name("latte")
// .price(Money.of(CurrencyUnit.of("CNY"),25.0))
// .build();
//
// count = coffeeMapper.save(c);
// log.info("Save{} coffee:{}",count,c);
//
// c = coffeeMapper.findById(c.getId());
// log.info("find coffee:{}",c);
//
// }
@RequestMapping("/hello")
public String hello(){
return "hello spring";
}
private void initOrders(){
//创建一杯咖啡
CoffeeDO espresso = CoffeeDO.builder().name("espresso")
.price(Money.of(CurrencyUnit.of("CNY"),20.0))
.build();
coffeeRepository.save(espresso);
log.info("Coffee:{}",espresso);
//创建一杯咖啡
CoffeeDO latte = CoffeeDO.builder().name("latte")
.price(Money.of(CurrencyUnit.of("CNY"),30.0))
.build();
coffeeRepository.save(latte);
log.info("Coffee:{}",latte);
//创建一个订单,包含一杯咖啡
CoffeeOrderDO order = CoffeeOrderDO.builder()
.customer("Li Lei")
// .items(Collections.singletonList(espresso))
.state(OrderState.INIT)
.build();
orderRepository.save(order);
log.info("Order:{}",order);
//创建一个订单,包含两杯咖啡
order = CoffeeOrderDO.builder()
.customer("Li Lei")
// .items(Arrays.asList(espresso,latte))
.state(OrderState.INIT)
.build();
orderRepository.save(order);
log.info("Order:{}",order);
//创建一个订单,包含两杯咖啡
order = CoffeeOrderDO.builder()
.customer("Li Lei")
// .items(Arrays.asList(espresso,latte))
.state(OrderState.INIT)
.build();
orderRepository.save(order);
log.info("Order:{}",order);
//创建一个订单,包含两杯咖啡
order = CoffeeOrderDO.builder()
.customer("Li Lei")
// .items(Arrays.asList(espresso,latte))
.state(OrderState.INIT)
.build();
orderRepository.save(order);
log.info("Order:{}",order);
}
// private void findOrders(){
// //获取咖啡
// coffeeRepository
// .findAll()
// .forEach(c->log.info("Loading{}",c));
//
// //获取前三,更新时间降序,ID升序
// List<CoffeeOrder> list = orderRepository.findTop3ByOrderByUpdateTimeDescIdAsc();
// log.info("findTop3ByOrderByUpdateTimeDescIdAsc:{}" ,getJoinedOrderId(list));
//
// //获取Li Lei 的订单id
// list = orderRepository.findByCustomerOrderById("Li Lei");
// log.info("findByCustomerOrderById:{}" ,getJoinedOrderId(list));
//
// //列出订单,订单中的咖啡
// list.forEach(o->{
// log.info("Order{}",o.getId());
// o.getItems().forEach(i->log.info(" Item{}",i));
// });
//
// //获取latte的咖啡列表
// list = orderRepository.findByItems_Name("latte");
// log.info("findByItems_Name:{}" ,getJoinedOrderId(list));
// }
/**
* 将列表中的id用,拼接
* @param list
* @return
*/
private String getJoinedOrderId(List<CoffeeOrderDO> list) {
return list.stream().map(o->o.getId().toString())
.collect(Collectors.joining(","));
}
}