項目地址詳見:html
https://github.com/gholly/springboot-java-web-freemarker.git前端
1.File->New->Project:點擊maven構建maven項目,而後點擊next,java
進而填寫項目名稱:mysql
點擊finish便可。git
2.springboot初探,搭建一個基礎的java web項目github
pom.xml文件web
<?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>
建立applicationwenspring
Application.java文件:sql
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文件apache
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的基礎框架的搭建!