SpringBoot(一)
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
1、工具下载
Eclipse:http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/neonr
Spring Tool Suite:https://spring.io/tools/sts/all
2、安装插件 Spring Tool Suite
1 、 Eclipse 的 help 点击 Eclipse Marketplace
2 、在 find 输入框中输入 Spring Tool Suite ,然后按 Enter 搜索
3 、找到名字 Spring Tools(... )点击 install
4 、一路下一步 确认 要求什么就确认什么 ,直到安装完毕 重启
3、创建第一个SpringBoot项目
File–>New Project–>Spring Boot–>SpringBoot Starter Project–> 配置 Name(项目名称) 、 Group(公司网址) 、 Package(应用包名)
在 pom.xml中dependencies中添加web模块
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
如下:
<!-- 核心模块,包括自动配置支持、日志和YAML -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- 测试模块,包括JUnit、Hamcrest、Mockito -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- Web模块 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
在java中添加地址注册:
@SpringBootApplication
@RestController
public class SpringDemoApplication {
public static void main(String[] args) {
SpringApplication.run(SpringDemoApplication.class, args);
}
@RequestMapping("/index")
public String hello() {
return "Hello from spring boot";
}
}
运行:在 Application 类上右单击 Run As–>SpringBoot App
在浏览器上输入:http://127.0.0.1:8080/index可以看到返回hello()方法中的返回值”Hello from spring boot”
基本注解功能
Controller ,表示的是返回的内容类型
@RestController 表示返回字符串 (json 数据 ) 相当于 @Controller 以及 @ResponseBody
@Controller 表示可以返回一个跳转页面 (html)
@ResponseBody 单纯的文本内容
如:返回字符串的配置
@RestController
public class UserController {
@RequestMapping("/login")
public String login() {
return "{code:1,data:\"success\"}";
}
}
返回页面:需要在 src/main/resources 目录下新建文件夹 templates ,然后创建 html 页面(如 map.html )
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>地图页面</title>
</head>
<body>
<p>这里是地图内容</p>
</body>
</html>
@Controller
public class LocationController {
@RequestMapping("/show_location")
public String showLocation() {
return "map"; // 去找到 map.html 返回给客户端
}
}
返回页面需要有个前提,就是依赖渲染框架
<!-- Thymeleaf 模板引擎 , 渲染 Html 页面 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
请求方式以及请求参数
参数,可以直接在功能方法上添加参数即可,也就是方法参数既是请求参数
@RequestMapping("/login")
public String login(String name, String psw) {
return " 收到的参数 " + name + " " + psw;
}
请求方式: http://127.0.0.1:8080/login?name=aaa&psw=1111
针对参数也可以使用 @RequestParam 指定必须传递的参数
@RequestMapping("/regist")
public String regist(@RequestParam("name") String userName,
@RequestParam("psw") String password,Integer age) {
return "userName:"+userName+" password:"+password+" age:"+age;
}
http://127.0.0.1:8080/regist?name=tom&psw=123
注意:参数的类型如果是基本数据类型,建议使用其包装类
对于请求方式,如果直接使用 @RequestMapping(“/ 子路径 “) 表示支持 GET 以及 POST 两种请求,如果要限定请求方式则配置如下
@RequestMapping(value="/regist",method=RequestMethod.POST)
集成 MyBatis
引入 MyBatis 模块以及引入 MySql 驱动
<!-- mybatis 依赖 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
<!-- MySql 驱动 -->
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.21</version>
</dependency>
为了方便 json 数据的处理也可以引入 json 库(阿里巴巴的 fastJson )
<!--Json 库的依赖 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.1.43</version>
</dependency>
配置数据的连接,直接在 src/main/resources/application.properties 文件中添加
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/weibo_db?useUnicode=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Drive
使用 MyBatis 操作数据库
1 、定义数据接口,需要有 @Mapper 描述
@Mapper
public interface UserMapper {
/**
* 添加用户信息到用户表中
*
* @param name
* @param psw
* @param sex
* @param age
* @return
*/
public Integer addUser(@Param("name") String name,
@Param("psw") String psw, @Param("sex") String sex,
@Param("age") Integer age);
/**
* 检测用户是否存在
*
* @param name
* @return
*/
public Integer checkUserExist(@Param("nick") String name);
}
2 、在 src/main/resources 新建 mapper 配置的 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.example.springdemo.mapper.UserMapper">
<insert id="addUser">
insert into users (nick,psw,sex,age)
values
(#{name},#{psw},#{sex},#{age})
</insert>
</mapper>
3 、使用,一般是在控制器 (Controller) 中使用 Mapper 接口 ( 关联实现对象 )
@Autowired
UserMapper userMapper;
...
@RequestMapping(value = "/regist")
public String regist(@RequestParam("nick") String userName, @RequestParam("psw")
String password, String sex,Integer age) {
// 检测用户名是否存在
int count = userMapper.checkUserExist(userName);
if (count > 0) {
// 已经存在
return " 用户名已存在 ";
} else {
int r = userMapper.addUser(userName, password, sex, age);
if (r > 0) {
return " 注册成功 ";
} else {
return " 注册失败 ";
}
}
}
其他的数据库配置 ( 事务相关、或者是加载 application.properties)
@EnableAutoConfiguration
@ComponentScan
@MapperScan("com.example.springdemo.mapper")
public class JdbcConfig {
// DataSource 配置
@Bean
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource dataSource() {
return new org.apache.tomcat.jdbc.pool.DataSource();
}
// 提供 SqlSeesion( 数据库事务操作相关的配置 )
@Bean
public SqlSessionFactory sqlSessionFactoryBean() throws Exception {
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
sqlSessionFactoryBean.setDataSource(dataSource());
PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
sqlSessionFactoryBean.setMapperLocations(resolver.getResources("classpath:/mybatis/*.xml"));
return sqlSessionFactoryBean.getObject();
}
@Bean
public PlatformTransactionManager transactionManager() {
return new DataSourceTransactionManager(dataSource());
}
}
需要依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
后续继续更新。。。
上一篇: 文件上传错误:java.io.EOFException: Unexpected EOF read on the socket
下一篇: SpringBoot 解决文件上传 java.io.EOFException: Unexpected EOF read on the socket问题
推荐阅读
-
帮忙看一条SQL语句了语句!
-
安装PHPCMS填写数据库不能点击到下一步,该如何处理
-
如何压缩一段文本后存入mysql
-
phpStorm 新建一个php文件一写上东西就有红线提示Expecting Statement怎么解?
-
通过jquery的val()方法获取textarea的值,结尾少一个汉字
-
vsftpd-1.1.3配制实例之一:INTERNET_SITE
-
Explorer文件夹双击返回上一层Clover
-
50分~哪位高手有mysql5.0的windows下的安装包?上传一下~
-
Codeigniter的一些优秀特性总结_php实例
-
PHP中的session不能跨页传送?一跨页就丢失,为空的