spring boot系列之基础介绍

  • spring boot简介
    spring boot设计目的是简化spring应用的初始搭建以及开发过程,开启各种自动装配,消除样板化的配置,它采用的是建立生产就绪的应用程序观点,优先于配置的惯例,使用了spring boot一切会变得更加简单(配置、编码、部署)。
  • spring boot核心功能
    1.独立运行Spring项目
    Spring boot 可以以jar包形式独立运行,运行一个Spring Boot项目只需要通过java -jar xx.jar来运行。

    2.内嵌servlet容器
    Spring Boot可以选择内嵌Tomcat、jetty或者Undertow,这样我们无须以war包形式部署项目。

    3.提供starter简化Maven配置
    spring提供了一系列的start pom来简化Maven的依赖加载,例如,当你使用了spring-boot-starter-web,会自动加入如图5-1所示的依赖包。

    4.自动装配Spring 
    SpringBoot会根据在类路径中的jar包,类、为jar包里面的类自动配置Bean,这样会极大地减少我们要使用的配置。当然,SpringBoot只考虑大多数的开发场景,并不是所有的场景,若在实际开发中我们需要配置Bean,而SpringBoot灭有提供支持,则可以自定义自动配置。

    5.准生产的应用监控
    SpringBoot提供基于http ssh telnet对运行时的项目进行监控。

    6.无代码生产和xml配置  
    SpringBoot不是借助与代码生成来实现的,而是通过条件注解来实现的,这是Spring4.x提供的新特性。
  • Spring boot优缺点

    1.快速构建项目
    2.对主流开发框架的无配置集成
    3.项目可独立运行,无需外部依赖 Servlet 容器
    4.提供运行时的应用监控
    5.极大地提高了开发、部署效率
    6.与云计算的天然集成

  • 1.版本迭代速度很快,一些模块改动很大
    2.由于不用自己做配置,报错时很难定位
    3.网上现成的解决方案比较少

    // springboot启动时注入bean
    @SpringBootApplication
    public class SpringbootFirstApplication {
        public static void main(String[] args) {
            SpringApplication.run(SpringbootFirstApplication.class, args);
        }
        @Bean
        public CommandLineRunner commandLineRunner(ApplicationContext ctx) {
            return args -> {
                System.out.println("Let's inspect the beans provided by Spring Boot:");
                // 从ioc容器中获取启动bean
                String[] beanNames = ctx.getBeanDefinitionNames();
                Arrays.sort(beanNames);
                for (String beanName : beanNames) {
                    System.out.println(beanName);
                }
            };
        }
    }
    
    // Spring boot单元测试
    @RunWith(SpringRunner.class)
    // 每次运行都会启动一个随机端口
    // SpringBootTest的classes属性:配置为启动类, 可以Autowired装配Spring容器中的bean
    @SpringBootTest(classes = SpringbootFirstApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
    public class HelloControllerIT {
        // 分配随机端口,相当于@Value("${local.server.port}")
        @LocalServerPort   
        private int port;
        private URL base;
     
        @Autowired
        // 通过Restful方式调用, TestRestTemplate包含post、get、put、delete等方法
        private TestRestTemplate template; 
    
        @Before
        public void setUp() throws Exception {
            this.base = new URL("http://localhost:" + port + "/");
        }
    
        @Test
        public void getHello() throws Exception {
            String url = base.toString();
            ResponseEntity<String> response = template.getForEntity(url, String.class);
            assertThat(response.getBody(), equalTo("Greetings from Spring Boot!"));
        }
    }
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值