SpringBoot從入門到上頭

一、創建一個SpringBoot工程

1. 通過SpringInitializr來創建

在這裏插入圖片描述
這裏寫圖片描述
2. pom.xml中就會有以下內容

<dependencies>
   <!-- springmvc整合 -->
   <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
   </dependency>
   <!-- springboot測試啓動器 -->
   <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
   </dependency>
</dependencies>

<build>
   <plugins>
      <plugin>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
   </plugins>
</build>

二、SpringBoot整合Mybatis和SpringMVC

1. 項目目錄介紹
對l1.1. src-main-java(存放代碼的地方)
對對注意點:
對對1)自動生成的啓動文件SpringboodemoApplication.java要和controller、mapper之類的平級。
對對2)mapper類上貼註解 @org.apache.ibatis.annotations.Mapper
對對對lservice類上貼註解 @org.springframework.stereotype.Service
對對對lcontroller類上貼註解(還有@RequestMapping
你是魔鬼l @org.springframework.web.bind.annotation.RestController
對對對對對參數上:url上的@PathVariable和普通的@RequestParam
對l1.2. src-main-resource(存放配置文件的地方)
對對注意點:
對對1)mabatis配置文件寫在這裏。
對對2)application.properties 是一個全局的配置默認加載。
對對對對數據連接四要素。
對對對對spring集成mybatis環境如:
對對對對對對pojo別名掃描包、指定mybatis的核心配置文件位置、配置連接池
對對3)讀取配置文件.(文件是:application.properties)
對對對對3.1.通過@Resource標籤讀取文件。(org.springframework.core.env.Environment)
對對對對對@Resource
對對對對對private Environment environment;
對對對對3.2.獲取文件內容。(name爲文件中的鍵)
對對對對對environment.getProperties("name");
對l1.3. pom.xml (存放所有的插件以及依賴的地方)
對對注意點:
對對1)這裏的東西可以在創建的時候進行勾選。

2.訪問項目不需要加入項目名,也不需要配置tomcat(已內置),直接啓動啓動類即可。

3.項目空跳轉html頁面。
對l3.1. pom.xml中添加支持從properties配置前後綴。

<!-- 配合application.properties支持頁面跳轉 -->
<dependency>
   <groupId>org.apache.tomcat.embed</groupId>
   <artifactId>tomcat-embed-jasper</artifactId>
   <scope>provided</scope>
</dependency>

對l3.2. propertiest中配置前後綴。

<!-- 頁面默認前綴目錄 (頁面放在static文件夾) -->
spring.mvc.view.prefix=/
<!-- # 響應頁面默認後綴 -->
spring.mvc.view.suffix=.html

三、SpringBoot整合redis。

1.在pom.xml中加入依賴。(redis啓動器)
<!-- 配置使用redis啓動器 -->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-redis</artifactId>
</dependency>

2.修改引導類。
對l設置開啓緩存。@EnableCaching註解加到啓動類上。
3.pojo類上添加實現序列化接口。
4.修改serviceImpl,實現緩存的添加和刪除。
對l4.1.註解效果
對對對方法添加@Cacheable 註解實現緩存添加。

queryUserByName(String name) // 方法則刪除緩存

對對對方法添加@CacheEvict 註解實現緩存刪除。

queryAll() // 執行方法就會使用緩存,如果緩存沒有就添加緩存

對l4.2. 註解介紹
對對對參數value是緩存的名字
對對對對對在執行的時候,會找叫這個名字的緩存使用/刪除
對對對參數key默認情況下是空串
對對對對對是Spring的一種表達式語言SpEL,我們這裏可以隨意指定,但是需要注意一定要加單引號
5.手動操作redis。
對l官方提供了三種不同的模板來實現直接操作redis。自己需要的時候只需用@autowired注入模板即可。(RedisConnectionFactory, StringRedisTemplate 和 RedisTemplate)
這裏寫圖片描述
6.配置redis的連接屬性。
對lredis啓動器默認會去找本地的redis服務,端口是6379.如果需要訪問其他的reids服務則需要的application.properties中配置。
對l6.1.單機版。

#Redis
spring.redis.host = 192.168.37.161
spring.reids.port = 6379

對l6.2. 集羣版。

#Redis cluster
spring.redis.cluster.nodes=192.168.37.161:7001,192.168.37.161:7002,192.168.37.161:7003,192.168.37.161:7004,192.168.37.161:7005,192.168.37.161:7006

四、SpringBoot整合ActiveMQ

1.加入依賴。
<!-- 配置ActiveMQ啓動器 -->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-activemq</artifactId>
</dependency>

2.修改引導類。

// 設置隊列,添加一個方法。
@Bean
public Queue queue() {
	return new ActiveMQQueue("istest.queue");
}

3. 編寫發送消息的Controller

@RestController
@RequestMapping("queue")
public class QueueController {
	//注入發送消息的對象
	@Autowired
	private JmsTemplate jmsTemplate;
 
	//注入消息隊列
	@Autowired
	private Destination destination;
 
	//編寫發送消息的方法
	@RequestMapping("send/{message}")
	public String send(@PathVariable String message) {
		this.jmsTemplate.convertAndSend(destination, message);
		return "消息發送成功!消息內容:" + message;
	}
}

4. 編寫消費者。

@Component
public class Consumer {
	// 接受消息方法
	@JmsListener(destination = "istest.queue")
	public void readMessage(String text) {
		System.out.println("接受到的消息是:" + text);
	}
}

5.測試。
對對啓動服務後,在瀏覽器輸入以下地址
對對http://127.0.0.1:8080/queue/send/發消息了11
6.注意。
對對SpringBoot內置了ActiveMQ服務,不用單獨的啓動服務。
對對假如想要用自己的服務,需要在application.properties中配置。

#ActiveMQ
spring.activemq.broker-url=tcp://192.168.37.161:61616

五、整合通用mapper和分頁助手。

1.pom.xml中加入依賴。
<!-- 通用mapper -->
<dependency>
	<groupId>com.github.abel533</group>
	<artifactId>mapper</artifactId>
	<version>2.3.4</version>
</dependency>
<!-- 分頁助手 -->
<dependency>
	<groupId>com.github.pageHelper</group>
	<artifactId>pageHelper</artifactId>
	<version>3.7.5</version>
</dependency>
<dependency>
	<groupId>com.github.jsqlparser</group>
	<artifactId>jsqlparser</artifactId>
	<version>0.9.1</version>
</dependency>

2.配置文件application.properties中添加配置。

// spring集成Mybatis環境
// pojo掃描別名
mybatis.type-aliases-package=com.example.springboot.pojo
// 加載Mybatis核心配置文件
mybatis.mapper-locations=classpath:mapper/*Mapper.xml
mybatis.config-location=classpath:mybatis/SqlMapConfig.xml

3. 在resource\mapper目錄下加入UserMapper.xml配置文件。
4. 在resource\mybatis目錄下加入SqlMapConfig.xml配置文件。

<configuration>
	<plugins>
		<!-- 分頁助手 -->
		<plugin interceptor="com.github.pagehelper.PageHelper">
			<property name="dialect" value="mysql" />
			<!-- 該參數默認爲false -->
			<!-- 設置爲true時,使用RowBounds分頁會進行count查詢 -->
			<property name="rowBoundsWithCount" value="true" />
		</plugin>
 
		<!-- 通用Mapper -->
		<plugin interceptor="com.github.abel533.mapperhelper.MapperInterceptor">
			<!--主鍵自增回寫方法,默認值MYSQL,詳細說明請看文檔 -->
			<property name="IDENTITY" value="MYSQL" />
			<!--通用Mapper接口,多個通用接口用逗號隔開 -->
			<property name="mappers" value="com.github.abel533.mapper.Mapper" />
		</plugin>
		
	</plugins>
</configuration>

5.代碼中使用
對對mapper類繼承com.github.abel533.mapper.Mapper<T>
對對service類中直接使用分頁。

// 使用通用 Mapper和分頁助手
@Override
public List<User> queryUserByPage(Integer page, Integer rows) {
	// 設置分頁
	PageHelper.startPage(page, rows);
	// 使用通用Mapper的方法進行查詢所有數據
	List<User> list = this.userMapper.select(null);
	return list;
}

六、使用Junit測試。

1.在pom.xml中加入依賴。
<!-- 配置測試啓動器 -->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-test</artifactId>
	<scope>test</scope>
</dependency>

2.測試代碼。

//測試類上要貼註解:
	@RunWith(SpringJUnit4ClassRunner.class)
	@SpringBootTest(classes=Application.class)  //指定啓動類
//方法上貼註解:
	@Test

七、整合FreeMarker

1.pom.xml 中加入依賴。
<!-- 配置FreeMarker啓動器 -->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-freemarker</artifactId>
	<scope>test</scope>
</dependency>

2.編寫controller。

@Controller
@RequestMapper("fm")
public class fm(Map<String,Object> root){
	root.put("name","張三");
	root.put("date",new Date());

	return "template";
}

3.在src\main\resources\templates編寫模板 template.ftl。

hello ${name} ! 當前時間是: ${date?datetime}

八、整合Solr

1.pom.xml 中加入依賴。
<!-- solr啓動器 -->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-data-solr</artifactId>
</dependency>

2.修改配置文件 application.properties

// solr配置
spring.data.solr.host=http://127.0.0.1:8081/solr

3.編寫 Controller

@Controller
@RequestMapping("solr")
public class SolrController {

	@Autowired
	private SolrClient solrClient;

	@RequestMapping("query/{data}")
	public String query(@PathVariable String data, Map<String, Object> root) throws Exception {
		// 查詢solr
		SolrQuery solrQuery = new SolrQuery("title:" + data);
		QueryResponse response = this.solrClient.query(solrQuery);
		SolrDocumentList results = response.getResults();
		
		// 解析查詢結果
		List<String> list = new ArrayList<String>();
		for (SolrDocument solrDocument : results) {
			list.add(solrDocument.get("title").toString());
		}

		// 傳遞數據
		root.put("total", results.getNumFound());
		root.put("list", list);

		return "solr";

	}

	@RequestMapping("save/{id}/{title}")
	@ResponseBody
	public String save(@PathVariable String id, @PathVariable String title) throws Exception {
		SolrInputDocument doc = new SolrInputDocument();
		doc.addField("id", id);
		doc.addField("title", title);

		this.solrClient.add(doc);
		this.solrClient.commit();

		return "保存成功";

	}

}

3.編寫展示模板
對lsrc\main\resources\templates下創建solr.ftl模板

查詢到了${total}條數據
<br>
查詢結果如下:
<#list list as l >
	<br>${l}
</#list>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章