最近配置spring boot费了上些功夫,其实之前也用过只不过时间相隔太久了,而且自己没有做相应的整理,导致再次使用要重新学一遍,这次配置完后我决定把配置过程写下来,整理一下记。
一、整体结构。
spring boot用起来还是比写servlet要方便的多,结构也简单的多。使用idea建立spring boot项目,之后通过pom.xml下载jar包
1、spring boot启动程序入口
Web03Application 这个类在建时会自动创建,以后就在这里启动程序
代码如下:
packagecom.keduox;
importorg.springframework.boot.SpringApplication;
importorg.springframework.boot.autoconfigure.SpringBootApplication;
importorg.springframework.context.annotation.ComponentScan;
@SpringBootApplication
public classWeb03Application {
public static voidmain(String[] args) {
SpringApplication.run(Web03Application.class,args);
}
}
2、pom文件的配置
我用到了Mybaits、mysql导的包如下:
3、application.property作相应的配置
代码如下:
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://192.168.200.11:3306/mydb02
spring.datasource.username=root
spring.datasource.password=1234
spring.datasource.type=org.apache.tomcat.jdbc.pool.DataSource
# Specify the DBMS
spring.jpa.database=MYSQL
# Show or not log for each sql query
spring.jpa.show-sql=true
#配置Mybatis
mybatis.typeAliasesPackage=com.example.entity
4、MainController中的代码
packagecom.example.controller;
importcom.example.entity.User;
importcom.example.service.MyService;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.stereotype.Controller;
importorg.springframework.web.bind.annotation.RequestMapping;
importorg.springframework.web.bind.annotation.ResponseBody;
importjava.util.ArrayList;
importjava.util.HashMap;
importjava.util.List;
importjava.util.Map;
@Controller
public classMainController {
@Autowired
privateMyServicems;
@RequestMapping("/view")
publicStringttt(){
return"index.html";
}
@RequestMapping("/getData")
@ResponseBody
publicMap>getData(){
Map> map =newHashMap>();
List fnls =newArrayList();
List prls =newArrayList();
List ls =ms.selectAll();
for(User u : ls){
System.out.println(u.getfName() +" : "+ u.getPrice());
fnls.add(u.getfName());
prls.add(""+u.getPrice());
}
map.put("fNmae",fnls);
map.put("price",prls);
returnmap;
}
@RequestMapping("/getNameAndPrice")
@ResponseBody
publicMap>getData2(){
Map> map =newHashMap>();
List fnls =newArrayList();
List prls =newArrayList();
List ls =ms.getNameAndPrice();
for(User u : ls){
System.out.println("dd :\t"+u.getfName() +" : "+ u.getPrice());
fnls.add(u.getfName());
prls.add(""+u.getPrice());
}
map.put("fNmae",fnls);
map.put("price",prls);
returnmap;
}
}
5、UserDao中的代码
packagecom.example.dao;
importcom.example.entity.User;
importorg.apache.ibatis.annotations.Mapper;
importorg.apache.ibatis.annotations.Result;
importorg.apache.ibatis.annotations.Results;
importorg.apache.ibatis.annotations.Select;
importjava.util.List;
@Mapper
public interfaceUserDao {
@Select("select * from pro")
@Results({
@Result(property="id",column="id"),
@Result(property="fName",column="fName"),
@Result(property="price",column="price"),
@Result(property="area",column="area"),
@Result(property="cinema",column="cinema"),
})
publicListlist();
@Select("select fName,price from pro group by fName")
@Results({
// @Result(property = "id", column = "id"),
@Result(property="fName",column="fName"),
@Result(property="price",column="price"),
// @Result(property = "area", column = "area"),
// @Result(property = "cinema", column = "cinema"),
})
publicListgetNameAndPrice();
}
6、User中的代码(不需要加注解的)
packagecom.example.entity;
importjava.io.Serializable;
/**
* Created by zhend on 2017/9/18.
*/
//@Entity
//@Table(name = "mydb02")
public classUserimplementsSerializable{
// @Id
// @GeneratedValue(strategy= GenerationType.AUTO)
// @Column(name = "id")
private intid;
// @Column(name="fName")
privateStringfName;
// @Column(name = "price")
private intprice;
// @Column(name = "area")
privateStringarea;
// @Column(name = "cinema")
privateStringcinema;
publicUser() {
}
publicUser(String fName, intprice,String area,String cinema) {
this.fName= fName;
this.price= price;
this.area= area;
this.cinema= cinema;
}
public voidsetId(intid) {
this.id= id;
}
public voidsetfName(String fName) {
this.fName= fName;
}
public voidsetPrice(intprice) {
this.price= price;
}
public voidsetArea(String area) {
this.area= area;
}
public voidsetCinema(String cinema) {
this.cinema= cinema;
}
public intgetId() {
returnid;
}
publicStringgetfName() {
returnfName;
}
public intgetPrice() {
returnprice;
}
publicStringgetArea() {
returnarea;
}
publicStringgetCinema() {
returncinema;
}
@Override
publicStringtoString() {
return"User{"+
"id="+id+
", fName='"+fName+'\''+
", price="+price+
", area='"+area+'\''+
", cinema='"+cinema+'\''+
'}';
}
}
7、MyService中的代码
packagecom.example.entity;
importjava.io.Serializable;
/**
* Created by zhend on 2017/9/18.
*/
//@Entity
//@Table(name = "mydb02")
public classUserimplementsSerializable{
// @Id
// @GeneratedValue(strategy= GenerationType.AUTO)
// @Column(name = "id")
private intid;
// @Column(name="fName")
privateStringfName;
// @Column(name = "price")
private intprice;
// @Column(name = "area")
privateStringarea;
// @Column(name = "cinema")
privateStringcinema;
publicUser() {
}
publicUser(String fName, intprice,String area,String cinema) {
this.fName= fName;
this.price= price;
this.area= area;
this.cinema= cinema;
}
public voidsetId(intid) {
this.id= id;
}
public voidsetfName(String fName) {
this.fName= fName;
}
public voidsetPrice(intprice) {
this.price= price;
}
public voidsetArea(String area) {
this.area= area;
}
public voidsetCinema(String cinema) {
this.cinema= cinema;
}
public intgetId() {
returnid;
}
publicStringgetfName() {
returnfName;
}
public intgetPrice() {
returnprice;
}
publicStringgetArea() {
returnarea;
}
publicStringgetCinema() {
returncinema;
}
@Override
publicStringtoString() {
return"User{"+
"id="+id+
", fName='"+fName+'\''+
", price="+price+
", area='"+area+'\''+
", cinema='"+cinema+'\''+
'}';
}
}
8、MyServiceImpl中的代码
packagecom.example.service;
importcom.example.dao.UserDao;
importcom.example.entity.User;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.stereotype.Service;
importjava.util.List;
/**
* Created by zhend on 2017/9/18.
*/
@Service
public classServiceImplimplementsMyService{
@Autowired
privateUserDaodd;
@Override
publicListselectAll() {
returndd.list();
}
@Override
publicListgetNameAndPrice() {
returndd.getNameAndPrice();
}
}
9、index.html中的代码
// 基于准备好的dom,初始化echarts实例
varmyChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
myChart.setOption({
title: {
text:'电影票房'
},
tooltip: {},
legend: {
data:['销量']
},
xAxis: {
data:[]
},
yAxis: {},
series: [{
name:'票房',
type:'bar',
data:[]
}]
});
// 使用刚指定的配置项和数据显示图表。
$.get('/getNameAndPrice').done(function(data) {
myChart.setOption({
xAxis: {
data:data.fNmae
},
series: [{
name:'票房',
type:'bar',
data:data.price
}]
})
})
/*$.get('/getNameAndPrice').done(function (data) {
alert(data)
})*/
注:另外要导两个jar包