springboot(一).初识springboot以及基本项目搭建

                                                                                 初识springboot 以及基本项目搭建java

       因为新的项目须要搭建后台框架,以前的springmvc架构也使用屡次,在我印象中springboot的微服务架构更轻量级更容易搭建,因此想去试试springboot的项目搭建,接下来,和你们分享一下初识springboot后对springboot的理解以及springboot的搭建过程
web

一.什么是springboot?为何要使用springboot?spring

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员再也不须要定义样板化的配置。在我看来,数据库

  springboot就是spring以及springmvc的衍生,是“懒人工具包”
编程

     spring boot只是一个配置工具,整合工具,辅助工具.springboot

  springboot 最大化的实现了convention over configuration(约定大于配置)架构

Spring 框架就像一个家族,有众多衍生产品例如 boot、security、jpa等等。但他们的基础都是Spring 的ioc和 aop. ioc提供了依赖注入的容器, aop解决了面向横切面的编程,而后在此二者的基础上实现了其余延伸产品的高级功能。mvc

Spring MVC是基于Servlet 的一个 MVC 框架主要解决 WEB 开发的问题,由于 Spring 的配置很是复杂,各类XML、 JavaConfig、hin处理起来比较繁琐。因而为了简化开发者的使用,从而创造性地推出了Spring boot,约定优于配置,简化了spring的配置流程。app

说得更简便一些:Spring 最初利用“工厂模式”(DI)和“代理模式”(AOP)解耦应用组件。你们以为挺好用,因而按照这种模式搞了一个 MVC框架(一些用Spring 解耦的组件),用开发 web 应用( SpringMVC )。而后发现每次开发都写不少样板代码,为了简化工做流程,因而开发出了一些“懒人整合包”(starter),这套就是 Spring Boot。框架

总结一下springboot的优势:

(1). 遵循"约定优于配置"原则,使用Spirng Boot只需不多的配置,大部分时候可使用默认配置;

(2)   项目快速搭建,另外还能够无配置整合第三方框架;

(3) 简化Maven及Gradle配置

(4)   内嵌入Servlet如Tomcat、jetty容器,应用可用jar包运行(java -jar);

(5) 可彻底不使用xml配置,只使用自动配置和Java Config;

(6) 有多种强大的开发包,支持热启动 

spring-boot-starter-web:支持全栈web开发,里面包括了Tomcat和Spring-webmvc。

spring-boot-starter-mail:提供对javax.mail的支持.

spring-boot-starter-ws: 提供对Spring Web Services的支持

spring-boot-starter-test:提供对经常使用测试框架的支持,包括JUnit,Hamcrest以及Mockito等。

spring-boot-starter-actuator:支持产品环境下的一些功能,好比指标度量及监控等。

spring-boot-starter-jetty:支持jetty容器。

spring-boot-starter-log4j:引入默认的log框架(logback) 

了解了springboot的概念和优点以后,让咱们来试一下如何在短短几分钟内搭建springboot项目

 

二. springboot项目搭建

1.新建maven应用(在idea下新建maven应用)

 

2.新建maven应用以后,开始配置pom.xml而后import。

在pom中添加如下配置

 1 <!-- Spring boot 父引用-->
 2     <parent>
 3         <groupId>org.springframework.boot</groupId>
 4         <artifactId>spring-boot-starter-parent</artifactId>
 5         <version>1.4.0.RELEASE</version>
 6     </parent>
 7 
 8     <!-- Spring boot 核心web-->
 9     <dependencies>
10         <dependency>
11             <groupId>org.springframework.boot</groupId>
12             <artifactId>spring-boot-starter-web</artifactId>
13         </dependency>
14     </dependencies>

3. 而后咱们新建controller  

UserController

@RestController
public class UserController {

    //日志
    private final Logger log = LoggerFactory.getLogger(UserController.class);


    @Autowired//自动注入,能够直接省略掉set和get,它会帮咱们set和get
    private UserService userService;

    @RequestMapping("/getUser")
    public User getUser() {
        return userService.getUser();
    }
    @RequestMapping(value="/addUser")
    public int addUser() {
    	List<User> users = new ArrayList<User>();
        User user = new User();
        user.setId(2);
        user.setPassword("32131");
        user.setUsername("萨达");
    	users.add(user);
        log.info("个人用户名是"+user.getUsername()+"个人密码是"+user.getPassword());
        return userService.addUserWithBackId(users);
    }
}

这里个人接口调用了service和数据库,你们在写这个controller的时候先随便返回一下,如system.out等。

4.咱们在包的最外层增长新的应用启动入口 —> Application

/**
* @EnableAutoConfiguration:spring boot的注解,通常只用于主类,
* 是无xml配置启动的关键部分,明确指定了扫描包的路径为其修饰的主类的包(这也就是为何主类要放在根包路径下的缘由)
* 
* @ComponentScan 进行包的扫描,扫描路径由@EnableAutoConfiguration指定了
* 
* 主类要位于根包路径下,方便以后的扫描(We generally recommend that you locate your main application class in a root package above other classes.)
* 
    主类要位于根包路径下(例如,com.xxx.firstboot),这是推荐作法,方便扫描
    每个jar(即每个子项目)都要有一个主方法,用于启动该jar(也就是一个微服务)
    在主类上添加注解@SpringBootApplication,该注解至关于添加了以下三个注解
        @Configuration:该注解指明该类由spring容器管理
        @EnableAutoConfiguration:该注解是无xml配置启动的关键部分
        @ComponentScan:该注解指定扫描包(若是主类不是位于根路径下,这里须要指定扫描路径),相似于spring的包扫描注解

*/
//same as @Configuration+@EnableAutoConfiguration+@ComponentScan
@SpringBootApplication(exclude={DataSourceAutoConfiguration.class,DataSourceTransactionManagerAutoConfiguration.class})
public class Application {

	public static void main(String[] args) {
		SpringApplication.run(Application.class,
args); } }

关于@SpringBootApplication注解的用法在注释中有说明

此时,项目的结构如图所示:

启动应用后访问http://localhost:8080/get

{"id":1,"username":"yangheng","password":"123"}

到此,基本的springboot框架就算搭建完成了。

相关文章
相关标签/搜索