薅羊毛,望洞庭古诗,加元汇率-api大全-提供全网api
SpringBoot简介
Spring Boot是由Pivotal团队供给的全新结构,其规划意图是用来简化新Spring运用的初始建立以及开发进程。该结构运用了特定的办法来进行装备,从而使开发人员不再需求界说样板化的装备。经过这种办法,Boot致力于在蓬勃发展的快速运用开发范畴(rapid application development)成为领导者。
Spring Boot让咱们的Spring运用变的更轻量化。比方:你能够只是依托一个Java类来运转一个Spring引证。你也能够打包你的运用为jar并经过运用java -jar来运转你的Spring Web运用。
Spring Boot的首要长处:
- 为一切Spring开发者更快的入门
- 开箱即用,供给各种默许装备来简化项目装备
- 内嵌式容器简化Web项目
- 没有冗余代码生成和XML装备的要求
鄙人面的代码中只需有必定根底会发现这写代码实例十分简略关于开发者来说几乎是“零装备”。
SpringBoot运转
开发工具:jdk8,IDEA,STS,eclipse(需求装置STS插件)这些都支撑快速发动SpringBoot工程。我这儿就不快速发动了,运用maven工程。学习任何一项技能首要就要通晓HelloWord,那咱们来跑个初体验。
首要只用maven咱们创立的maven工程直接以jar包的办法创立就行了,首要咱们来引进SpringBoot的依靠
首要咱们需求依靠SpringBoot父工程,这是每个项目中有必要要有的。
咱们发动WEB模块当然有必要要引进WEB模块的依靠
咱们需求编写一个SpringBoot发动类,SpringbootFirstExperienceApplication.java
@SpringBootApplication
public class SpringbootFirstExperienceApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootFirstExperienceApplication.class, args);
}
}
到了这儿咱们直接把他当成SpringMVC来运用就行了,不过这儿默许是不支撑JSP官方引荐运用模板引擎,后边会写到整合JSP。这儿我就不写Controller了。
@SpringBootApplication:之前用户运用的是3个注解注解他们的main类。分别是@Configuration,@EnableAutoConfiguration,@ComponentScan。因为这些注解一般都是一同运用,spring boot供给了一个一致的注解@SpringBootApplication。
注意事项:咱们运用这个注解在不指定扫描途径的情况下,SpringBoot只能扫描到和SpringbootFirstExperienceApplication同包或子包的Bean;
SpringBoot目录结构
在src/main/resources中咱们能够有几个文件夹:
- templates:用来存储模板引擎的,Thymeleaf,FreeMarker,Velocity等都是不错的挑选。
- static:存储一些静态资源,css,js等
- public:在默许SpringBoot工程中是不生成这个文件夹的,可是在主动装备中咱们能够有这个文件夹用来寄存公共的资源(html等)
- application.properties:这个文件姓名是固定的,SpringBoot发动会默许加载这些装备在这儿面能够装备端口号,拜访途径,数据库衔接信息等等。这个文件十分重要,当然官方中推出了一个yml格局这是十分强壮的数据格局。
整合JdbcTemplate
引进依靠:
装备application.properties,尽管说是“零装备”可是这些必要的肯定要指定,不然它怎样知道连那个数据库?
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
运用办法:
@Service
public class EmployeeService {
@Autowired
private JdbcTemplate jdbcTemplate;
public boolean saveEmp(String name,String email,String gender){
String sql = "insert into tal_employee values(null,?,?,?)";
int result = jdbcTemplate.update(sql, name,email,gender);
System.out.println("result : " + result);
return result > 0 ? true:false;
}
}
@RestController
public class EmployeeController {
@Autowired
private EmployeeService employeeService;
@RequestMapping("/save")
public String insert(String name,String email,String gender){
boolean result = employeeService.saveEmp(name, email, gender);
if(result){
return "success";
}
return "error";
}
}
这儿咱们直接回来一个文本格局。
@RestController
在上面的代码中咱们运用到这个注解修正咱们的Controller类而是不运用@Controller这个注解,其实中包含了@Controller,一起包含@ResponseBody已然润饰在类上面那么便是表明这个类中一切的办法都是@ResponseBody所以在这儿咱们回来字符串在前台咱们会以文本格局展现,假如是目标那么它会主动转换成json格局回来。
整合JSP
在创立整合JSP的时分指定要选WAR,必定要选WAR。
引进依靠:
然后咱们只需求装备企图解析器途径就能够了。
#装备企图解析器前缀
spring.mvc.view.prefix=/WEB-INF/views/
#装备企图解析器后缀
spring.mvc.view.suffix=.jsp
整合JPA
相同的整合JPA咱们只需求发动咱们SpringBoot现已集成好的模块即可。
增加依靠:
发动JPA组件后直接装备数据库衔接信息就能够运用JPA功用。
Application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
实体类:Employee.java
@Table(name="tal_employee")
@Entity
public class Employee implements Serializable{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
@Column(name="last_Name")
private String lastName;
private String email;
private String gender;
//get set 省掉
}
EmployeeDao接口:
public interface EmployeeDao extends JpaRepository
}
EmployeeController.java:
@Controller
public class EmployeeController {
@Autowired
private EmployeeDao employeeDao;
@ResponseBody
@RequestMapping("/emps")
public List
List
System.out.println(employees);
return employees;
}
}
整合MyBatis
引进依靠:
装备application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
##############datasource classpath 数据衔接池地址##############
#spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
#指定咱们的mapper.xml方位
mybatis.mapper-locations=classpath:com/simple/springboot/mybatis/dao/mapper/*.xml
#entity.class 指定咱们实体类地点包方位
mybatis.type-aliases-package=com.simple.springboot.mybatis.entity
当然这儿还有许多特点假如想要运用能够参阅官方文档。到了这儿其他就不写了,把他当作SSM运用就ok。
注意事项:在咱们的Dao层接口中必定要在类上加上注解@Mapper不然无法扫描到。
AOP功用运用
在咱们SpringBoot中运用AOP十分简略。
package com.simple.springboot.aop;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.AfterThrowing;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;
@Aspect
@Component
public class SpringBootAspect {
/**
* 界说一个切入点
* @author:SimpleWu
* @Date:2018年10月12日
*/
@Pointcut(value="execution(* com.simple.springboot.util.*.*(..))")
public void aop(){}
/**
* 界说一个前置告诉
* @author:SimpleWu
* @Date:2018年10月12日
*/
@Before("aop()")
public void aopBefore(){
System.out.println("前置告诉 SpringBootAspect....aopBefore");
}
/**
* 界说一个后置告诉
* @author:SimpleWu
* @Date:2018年10月12日
*/
@After("aop()")
public void aopAfter(){
System.out.println("后置告诉 SpringBootAspect....aopAfter");
}
/**
* 处理未处理的JAVA反常
* @author:SimpleWu
* @Date:2018年10月12日
*/
@AfterThrowing(pointcut="aop()",throwing="e")
public void exception(Exception e){
System.out.println("反常告诉 SpringBootAspect...exception .." + e);
}
/**
* 盘绕告诉
* @author:SimpleWu
* @throws Throwable
* @Date:2018年10月12日
*/
@Around("aop()")
public void around(ProceedingJoinPoint invocation) throws Throwable{
System.out.println("SpringBootAspect..盘绕告诉 Before");
invocation.proceed();
System.out.println("SpringBootAspect..盘绕告诉 After");
}
}
使命调度
SpringBoot现已集成好一个调度功用。
@Component
public class ScheduledTasks {
private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
/**
* 使命调度,每隔5秒履行一次
* @author:SimpleWu
* @Date:2018年10月12日
*/
@Scheduled(fixedRate = 1000)
public void reportCurrentTime() {
System.out.println("现在时刻:" + dateFormat.format(new Date()));
}
}
然后发动的时分咱们有必要要在主函数类上加上注解:@EnableScheduling(翻译过来便是敞开调度)
/**
* SpringBoot运用使命调度
* @EnableScheduling标示程序敞开使命调度
* @author :SimpleWu
* @Date:2018年10月12日
*/
@SpringBootApplication
@EnableScheduling
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
最终:小编为我们预备了一些适合于1-5年以上开发经历的java程序员面试涉及到的绝大部分面试题及答案做成了文档和学习笔记文件以及架构视频材料免费共享给我们(包含Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并发等架构技能材料),期望能够协助到我们。
获取办法:请我们转发重视并私信小编(学习)
即可获取你需求的各类材料。