项目地址详见:
https://github.com/gholly/springboot-java-web-freemarker.git
1.File->New->Project:点击maven构建maven项目,然后点击next,
进而填写项目名称:
点击finish即可。
2.springboot初探,搭建一个基础的java web项目
pom.xml文件
<?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.test</groupId> <artifactId>blue</artifactId> <version>1.0-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.3.5.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> </project>
创建applicationwen
Application.java文件:
package com.test.blue; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * Created by guanguan on 17/1/17. */ @SpringBootApplication public class Application { public static void main(String[] args){ SpringApplication.run(Application.class,args); } }
controller.java文件
package com.test.blue; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; /** * Created by guanguan on 17/1/17. */ @Controller public class controller { @RequestMapping("/") @ResponseBody public String index(){ String index="jjj"; return index; } }
然后运行application.java文件,运行成功后,在浏览器上输入localhost:8080/
3.用springboot结合mybatis实现一个java web项目
pom.xml文件:
<?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.test</groupId> <artifactId>blue</artifactId> <version>1.0-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.3.5.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--mybatis--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.2.2</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.2.8</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <!--mysql--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!--数据源--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.21</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.1.43</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.8</source> <target>1.8</target> <encoding>utf-8</encoding> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-release-plugin</artifactId> <version>2.0</version> </plugin> </plugins> </build> </project>
Application.java
package com.test.blue; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.ComponentScan; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; /** * Created by guanguan on 17/1/17. */ @SpringBootApplication @ComponentScan("com.test.blue") public class Application extends WebMvcConfigurerAdapter { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
MybatisConfig.java
package com.test.blue.config; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.spring.annotation.MapperScan; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import javax.sql.DataSource; /** * Created by guanguan on 17/1/17. */ @Configuration @MapperScan("com.test.blue.dao") public class MybatisConfig { @Autowired DataSource dataSource; @Bean(name = "sqlSessionFactory") public SqlSessionFactory sqlSessionFactory() throws Exception { SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); sqlSessionFactoryBean.setDataSource(dataSource); PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); sqlSessionFactoryBean.setMapperLocations(resolver.getResources("classpath:/mybatis/*.xml")); return sqlSessionFactoryBean.getObject(); } }
Model层的User.java
package com.test.blue.model; /** * Created by guanguan on 17/1/17. */ public class User { private Integer id; private String username; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } }
Dao层的UserMapper.java
package com.test.blue.dao; import com.test.blue.model.User; import java.util.HashMap; import java.util.List; /** * Created by guanguan on 17/1/17. */ public interface UserMapper { List<User> findBy(HashMap<?,?> params); }
Service层的UserService.java
package com.test.blue.service; import com.test.blue.model.User; import java.util.HashMap; import java.util.List; /** * Created by guanguan on 17/1/17. */ public interface UserService { List<User> findBy(HashMap<?,?> params); }
Service层的UserServiceImpl.java
package com.test.blue.service; import com.test.blue.dao.UserMapper; import com.test.blue.model.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.HashMap; import java.util.List; /** * Created by guanguan on 17/1/17. */ @Service public class UserServiceImpl implements UserService{ @Autowired UserMapper userMapper; public List<User> findBy(HashMap<?,?> params){ return userMapper.findBy(params); } }
Myatis下的UserMapper.xml文件:
<?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.test.blue.dao.UserMapper"> <resultMap type="com.test.blue.model.User" id="userResultMap"> <id property="id" column="id"/> <result property="username" column="username"/> </resultMap> <select id="findBy" resultMap="userResultMap" parameterType="HashMap"> SELECT * FROM `user`; </select> </mapper>
controller层文件:
package com.test.blue.controller; import com.alibaba.fastjson.JSON; import com.test.blue.model.User; import com.test.blue.service.UserService; 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 java.util.HashMap; import java.util.List; /** * Created by guanguan on 17/1/17. */ @Controller public class controller { @Autowired UserService userService; @RequestMapping("/hh") @ResponseBody public String hh(){ List<User> userList =userService.findBy(new HashMap<>()); return JSON.toJSONString(userList); } }
application.yml文件
server:
port: 8383
spring:
datasource:
url: jdbc:mysql://127.0.0.1/blue?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&autoReconnect=true
username: upgrade
password: upgrade
driverClassName: com.mysql.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
freemarker:
suffix: .jsp
logging:
level.com.test.blue: debug
------------------------------------------------------------------------
分割线下面是加上freeamrker后的配置:
首先要加上freemarker的依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency>
其次yml配置:
server:
port: 8383
spring:
datasource:
url: jdbc:mysql://127.0.0.1/test?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&autoReconnect=true
username: upgrade
password: upgrade
driverClassName: com.mysql.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
freemarker:
cache: false
templateEncoding: UTF-8
templateLoaderPath: classpath:/templates/ #表示所有的模板文件都在该目录下,也即是前端文件在该目录下
suffix: .html
settings:
locale: zh_CN
date_format: yyyy-MM-dd
time_format: HH:mm:ss
datetime_format: yyyy-MM-dd HH:mm:ss
logging:
level.com.test.data: debug
其中关于freemarker的配置也可放于application.properties文件中(位于resources/目录下的application.properties和application.yml文件功能是一致的,均为项目的配置文件,可配置端口,模板引擎如freemarker,thymedef等,以及数据源,日志等,只是不同的写法而已,yml文件的格式更易观看)
spring.freemarker.suffix=.html
spring.freemarker.template-loader-path=classpath:/templates/
spring.freemarker.charset=UTF-8
spring.freemarker.cache = false
controller层
package com.test.data.controller;
import com.test.data.model.User;
import com.test.data.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.HashMap;
import java.util.List;
/**
* Created by guanguan on 2017/7/20.
*/
@Controller
public class controller {
@Autowired
UserService userService;
@RequestMapping("/")
public String index(ModelMap model){
HashMap<String,Object> params= new HashMap<String, Object>();
List<User> userList= userService.findBy(params);
model.addAttribute("user",userList.get(0));
return "index";
}
}
前端页面(页面略丑,只实现freemarker的功能)index.html
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<title>
freemarker简单练习
</title>
</head>
<body>
<div>
<span>ID:</span>
<button>${user.getId()}</button>
</div>
<div>
<span>姓名:</span>
<button>${user.getUserName()}</button>
</div>
</body>
</html>
运行结果:
此时已经完成springboot+mybatis+mysql+freemarker的基础框架的搭建!