一、创建一个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
)
对对对对对@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("itcast.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 = "itcast.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.编写展示模板
对l在 src\main\resources\templates
下创建solr.ftl模板
查询到了${total}条数据
<br>
查询结果如下:
<#list list as l >
<br>${l}
</#list>