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. 项目目录介绍
对l 1.1. src-main-java(存放代码的地方)
对对 注意点:
对对 1)自动生成的启动文件SpringboodemoApplication.java要和controller、mapper之类的平级。
对对 2)mapper类上贴注解 @org.apache.ibatis.annotations.Mapper
对对对l service类上贴注解 @org.springframework.stereotype.Service
对对对l controller类上贴注解(还有 @RequestMapping
你是魔鬼l @org.springframework.web.bind.annotation.RestController
对对对对对 参数上:url上的 @PathVariable 和普通的 @RequestParam
对l 1.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");
对l 1.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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值