springboot搭建记录

来源:互联网 发布:帝国cms差 编辑:程序博客网 时间:2024/05/19 03:42

新建项目而不用parent

一般建立springboot项目,需要引入一个springboot坐标作为parent,但是,这东西我们自己也可能有用,所以,就先留着。官方提供了另一个方案,不适用他的parent,引入以下坐标。
<dependency>    <!-- Import dependency management from Spring Boot -->    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-dependencies</artifactId>    <version>1.5.8.RELEASE</version>    <type>pom</type>    <scope>import</scope></dependency>1.5.8.RELEASE这个版本是spring4为其依赖的最后一个版本了,也是依赖的最新的spring4,鉴于对spring5的认知还不是很充分,现在我们先使用spring4作为我们的核心依赖。
另外还需要引入springboot的打包插件,以打包成正确的springboot的jar包
<build>        <plugins>            <plugin>                <groupId>org.springframework.boot</groupId>                <artifactId>spring-boot-maven-plugin</artifactId>            </plugin>        </plugins>    </build>

搭建springmvc环境,可以进行restful请求

引入依赖
<dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-web</artifactId>    <version>${springboot.version}</version></dependency>
同时,在包的根目录建立Application类,代码如下
@Configuration@EnableAutoConfiguration@ComponentScan//@SpringBootApplicationpublic class Application {    public static void main(String[] args) {        SpringApplication.run(Application.class, args);    }}
Controller类如下
/** * 关于用户操作与查询均在该Controller中进行 * * @author nature * @create 2017-11-05 21:45 */@Controller@RequestMapping("/user")public class UserController {    @RequestMapping(value="/get",method = RequestMethod.GET)    @ResponseBody    public UserEntity getUserById(){        UserEntity result=new UserEntity();        result.setId(1L);        result.setUsername("testStaticUserName");        result.setEmail("test@nature.com");        return result;    }}
自己补全相关的实体类即可,访问http://localhost:8080/user/get就可进入该方法

自定义配置文件

修改端口号

在classpath下建立application.properties文件,加入server.port=8080,即可修改端口号,后续其它默认属性修改也可以加入该文件

修改启动界面

在classpath下新建banner.txt,文件中内容就会替换springboot的默认开始banner

配置json序列化返回

日期格式化

在application.properties文件中添加如下配置:spring.jackson.date-format=yyyy-MM-dd HH:mm:ss

long转字符串

加入配置文件类,代码如下:
@EnableWebMvc@Configurationpublic class WebConfig extends WebMvcConfigurerAdapter {    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {        MappingJackson2HttpMessageConverter jackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();        ObjectMapper objectMapper = new ObjectMapper();        /**         * 序列换成json时,将所有的long变成string         * 因为js中得数字类型不能包含所有的java long值         */        SimpleModule simpleModule = new SimpleModule();        simpleModule.addSerializer(Long.class, ToStringSerializer.instance);        simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance);        objectMapper.registerModule(simpleModule);        jackson2HttpMessageConverter.setObjectMapper(objectMapper);        converters.add(jackson2HttpMessageConverter);    }}

redis操作

本次使用spring-data-redis

单元测试

在测试类上打如下注解即可
@RunWith(SpringJUnit4ClassRunner.class) //测试类注解@SpringBootTest(classes = Application.class) //指定springboot启动类,以获取配置public class AutoDispatchTest {}

备注

    这里有几个坑,这里只是我这次折腾的一部分记录,后续的折腾中,使用注解及java代码进行配置,出现了配置顺序不正确的情况,调了很久顺序都没有对,无奈,最终全盘使用的xml进行的配置,虽然其实是一样的,但是这是第一个坑。    还有,autoconfig,这东西,我目前还没有摸透,虽然目前拿着东西其项目很快,但是不可控性也很大,随着项目的复杂度上升,依赖项变多,就变得越来越不可靠了,如果只是单纯的一个简单的或者微小的服务,确实还是很快的。后续我会把实际的项目整理上来,但是,要折腾的东西太多了,时间不好说了
原创粉丝点击