來源:cnblogs.com/SimpleWu/p/9798146.html
-
SpringBoot簡介
-
SpringBoot運行
-
SpringBoot目錄結構
-
整合JdbcTemplate
-
@RestController
-
整合JSP
-
整合JPA
-
整合MyBatis
-
AOP功能使用
-
任務調度
-
整合RabbitMq
-
整合郵件發送
# SpringBoot簡介
2、開箱即用,提供各種默認配置來簡化項目配置
3、內嵌式容器簡化Web項目
4、沒有冗餘代碼生成和XML配置的要求
# SpringBoot運行
<!--引入SpringBoot父依賴-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.5.RELEASE</version>
<relativePath/>
</parent>
<!--編碼與JAVA版本-->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!--引入SpringBoot-WEB模塊-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
SpringbootFirstExperienceApplication.java
public class SpringbootFirstExperienceApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootFirstExperienceApplication.class, args);
}
}
# SpringBoot目錄結構
# 整合JdbcTemplate
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.2.RELEASE</version> </parent> <dependencies> <!--引入WEB模塊--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--引入JDBC模塊--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <!--引入數據庫驅動--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>
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
public class EmployeeService {
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;
}
}
public class EmployeeController {
private EmployeeService employeeService;
"/save") (
public String insert(String name,String email,String gender){
boolean result = employeeService.saveEmp(name, email, gender);
if(result){
return "success";
}
return "error";
}
}
# @RestController
# 整合JSP
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.2.RELEASE</version>
</parent>
<dependencies>
<!-- SpringBoot WEB組件 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 整合JSP依賴 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
</dependencies>
#配置試圖解析器前綴
spring.mvc.view.prefix=/WEB-INF/views/
#配置試圖解析器後綴
spring.mvc.view.suffix=.jsp
# 整合JPA
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.2.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--啓動JPA組件-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
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
"tal_employee") (name=
public class Employee implements Serializable{
(strategy = GenerationType.AUTO)
private Integer id;
"last_Name") (name=
private String lastName;
private String email;
private String gender;
//get set 省略
}
public interface EmployeeDao extends JpaRepository<Employee, Integer>{
}
public class EmployeeController {
private EmployeeDao employeeDao;
public List<Employee> getEmployees(){
List<Employee> employees = employeeDao.findAll();
System.out.println(employees);
return employees;
}
}
# 整合MyBatis
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.2.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--引入對JDBC的支持-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!--引入對logging的支持-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</dependency>
<!-- SpringBoot MyBatis啓動器 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.2.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
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
# 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;
public class SpringBootAspect {
/**
* 定義一個切入點
* @author:SimpleWu
* @Date:2018年10月12日
*/
public void aop(){}
/**
* 定義一個前置通知
* @author:SimpleWu
* @Date:2018年10月12日
*/
public void aopBefore(){
System.out.println("前置通知 SpringBootAspect....aopBefore");
}
/**
* 定義一個後置通知
* @author:SimpleWu
* @Date:2018年10月12日
*/
public void aopAfter(){
System.out.println("後置通知 SpringBootAspect....aopAfter");
}
/**
* 處理未處理的JAVA異常
* @author:SimpleWu
* @Date:2018年10月12日
*/
public void exception(Exception e){
System.out.println("異常通知 SpringBootAspect...exception .." + e);
}
/**
* 環繞通知
* @author:SimpleWu
* @throws Throwable
* @Date:2018年10月12日
*/
public void around(ProceedingJoinPoint invocation) throws Throwable{
System.out.println("SpringBootAspect..環繞通知 Before");
invocation.proceed();
System.out.println("SpringBootAspect..環繞通知 After");
}
}
# 任務調度
public class ScheduledTasks {
private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
/**
* 任務調度,每隔5秒執行一次
* @author:SimpleWu
* @Date:2018年10月12日
*/
1000) (fixedRate =
public void reportCurrentTime() {
System.out.println("現在時間:" + dateFormat.format(new Date()));
}
}
/**
* SpringBoot使用任務調度
* @EnableScheduling標註程序開啓任務調度
* @author :SimpleWu
* @Date:2018年10月12日
*/
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
# 整合RabbitMq
sudo yum install -y make gcc gcc-c++ m4 openssl openssl-devel ncurses-devel unixODBC unixODBC-devel java java-devel
sudo yum install epel-release
sudo yum install erlang
sudo yum install socat
sudo wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.15/rabbitmq-server-3.6.15-1.el7.noarch.rpm
sudo yum install rabbitmq-server-3.6.15-1.el7.noarch.rpm
[ ]}]}].
rm rabbit\@rabbit@localhost-sasl.log
# 添加開機啓動RabbitMQ服務
systemctl enable rabbitmq-server.service
# 查看服務狀態
systemctl status rabbitmq-server.service
# 啓動服務
systemctl start rabbitmq-server.service
# 停止服務
systemctl stop rabbitmq-server.service
# 查看當前所有用戶
rabbitmqctl list_users
# 查看默認guest用戶的權限
rabbitmqctl list_user_permissions guest
# 由於RabbitMQ默認的賬號用戶名和密碼都是guest。爲了安全起見, 先刪掉默認用戶
rabbitmqctl delete_user guest
# 添加新用戶
rabbitmqctl add_user username password
# 設置用戶tag
rabbitmqctl set_user_tags username administrator
# 賦予用戶默認vhost的全部操作權限
rabbitmqctl set_permissions -p / username ".*" ".*" ".*"
# 查看用戶的權限
rabbitmqctl list_user_permissions username
rabbitmq-plugins enable rabbitmq_management
整合RabbitMq
導入Maven依賴
<!--SpringBoot2.x-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<!--設置JAVA版本-->
<properties>
<java.version>1.8</java.version>
</properties>
<!--引入依賴-->
<dependencies>
<!--啓動RabbitmQ-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
<!--啓動WEB-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--啓動TEST-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
spring.application.name=springboot-rabbitmq
spring.rabbitmq.host=192.168.197.133
spring.rabbitmq.port=5672
spring.rabbitmq.username=root
spring.rabbitmq.password=123456
spring.rabbitmq.publisher-confirms=true
spring.rabbitmq.publisher-returns=true
spring.rabbitmq.virtual-host=/
/**
* @author SimpleWu
* @Date 2019-05-17
* 該類初始化隊列
*/
public class RabbitMqInitialization {
/**
* 創建隊列 隊列名字爲SayQueue
* @return
*/
public Queue SayQueue() {
return new Queue("SayQueue");
}
}
/**
* @author SimpleWu
* @Date 2019-05-17
* 生產者
*/
public class SayProducer {
private RabbitTemplate rabbitTemplate;
public void send(String name){
String sendMsg = "hello: " + name + " " + new Date();
//指定隊列
this.rabbitTemplate.convertAndSend("SayQueue", sendMsg);
}
}
/**
* @author SimpleWu
* @Date 2019-05-17
* 消費者
* queues 指定監聽的隊列
*/
"SayQueue") (queues =
public class SayConsumer {
public void process(String hello) {
System.out.println("SayConsumer : " + hello);
}
}
public class SayController {
private SayProducer sayProducer;
public String send( String name){
sayProducer.send(name);
return "Send Succcess SimpleWu";
}
}
# 整合郵件發送
<!--啓動郵箱發送依賴-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
spring.mail.host 需要根據不同的郵箱類型配置不同的服務器地址 發送郵箱
/**
* @author SimpleWu
* @data 2019=05-17
* 發送郵件
*/
public class EmailService {
private JavaMailSender javaMailSender;
public void sendSimpleMail(){
MimeMessage message = null;
try {
message = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom("[email protected]");
helper.setTo("[email protected]");
helper.setSubject("標題:發送Html內容");
StringBuffer context = new StringBuffer();
context.append("<p style='color:red'>");
context.append("Hello SpringBoot Email Start SimpleWu!!");
context.append("</p>");
helper.setText(context.toString(),true);//設置true發送html郵件
//帶附件
//FileSystemResource fileSystemResource=new FileSystemResource(new File("D:\2019-05-07.pdf"));
//helper.addAttachment("郵箱附件",fileSystemResource);
javaMailSender.send(message);
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
---END---
本文分享自微信公衆號 - Java專欄(finishbug)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。