Sprig Boot入门

Spring Boot入门笔记

前提:知道SSM,知道maven,开发过项目

1.IDEA创建springboot项目

  • 如果你是首次打开idea,点击小窗口中的,create new project创建新项目(图示略)
  • 如果你的idea是打开项目的状态,直接点击左上角File-New-Project创建新项目

如上步骤,会打开一个窗口:
New Project
然后选择如下:有的idea Default没有,填写上那个https://start.sprong.io 即可
注意:我用的是jdk1.8,(idea高版本,选择的时候貌似不能选择1.8之前的版本,所以先搞个1.8用着,学习springboot不影响)
这里写图片描述
选择好后点击Next
这里写图片描述
选择好后点击Next
这里写图片描述
然后Next,
这里写图片描述
Finish即可

如果maven配置的是阿里云的仓库会快一点,当然第一次,会下载很多jar包耐心等待即可

等项目创建完成:目录结构是这样的(我的截图少了三个文件,mvn开头的,因为不需要所以删了)
这里写图片描述
里面的目录和文件
这里写图片描述
其中这个就是启动springboot用的,可以看到有main方法
这里写图片描述

到这里springboot项目就创建完成了

2.启动springboot

启动springboot有三种方法,(如果报错请检查端口号是否被占用,启动项目默认端口号8080,修改端口号下面说)

  • 直接运行main方法,右键main方法或右上角或左下角点击按钮启动项目
  • 打开命令行(idea自带有Terminal),在项目根目录下用mvn spring-boot:run启动项目
  • 打开命令行(idea自带有Terminal),在项目根目录下用mvn install编译项目,然后进入target目录,启动.jar的文件,用 java -jar 文件名.jar 启动项目

3.例子:

这里写一个例子:
这里写图片描述
写完后启动项目:
在浏览器上访问项目localhost:8080/hello
如果输出有,就ok了

4.配置文件

(1)示例

如果你的application.properties还没改回来,配置文件是这样写的:

  • 示例:
server.port=8081
server.context-path=/springbootdemo

如果你的application.properties已经改为application.yml,配置文件是这样写的:

  • 示例:
server:
  port: 8081
  context-path: /springbootdemo

这时候再次启动项目,
访问路径就变成了: localhost:8081/springbootdemo/hello

(2)注意

springboot用.yml配置文件
需要注意的是,例如port: 和8080之间有个空格,context-path:和 /springbootdemo之间有个空格

server:
  port: 8081
  context-path: /springbootdemo

(3)写配置文件并使用

例子1:

在application.yml中定义一个,gender和age

server:
  port: 8081
  context-path: /springbootdemo
gender: "男"
age: 18

使用就是
这里写图片描述
浏览器测试:
这里写图片描述

例子2:

配置文件:

server:
  port: 8081
  context-path: /springbootdemo
name: "张三"
gender: "男"
age: 18
content: "name:${name},gender:${gender},age:${age}"

然后代码引入:
这里写图片描述
浏览器访问:
这里写图片描述

例子3:

如果有很多属性,不能那么写了,于是简化例子2:

server:
  port: 8081
  context-path: /springbootdemo
person:
  name: "张三"
  gender: "男"
  age: 18

新建一个类
这里写图片描述
这里我出现一个错误,百度出如下结果
1.出现spring boot Configuration Annotation Proessor not found in classpath的提示是在用了@ConfigurationProperties这个注解时,所以问题出现在ConfigurationProperties注解。
2.根据提示的not found in classpath,查询此注解的使用关于怎么指定classpath,进而查询location,spring boot1.5以上版本@ConfigurationProperties取消location注解
官方解决方案,Maven引入依赖

 <dependency>
   <groupId> org.springframework.boot </groupId>
   <artifactId> spring-boot-configuration-processor </artifactId>
   <optional> true </optional>
</dependency>

于是我添加到pom文件中,错误消失
这里写图片描述
然后改代码
这里写图片描述
测试:
这里写图片描述

5.两个配置文件

有的时候开发环境和生产环境,配置不一样,这时可以将配置文件分为两个,然后选择其中一个用即可,复制两个配置文件,在主配置文件中引用即可
这里写图片描述

还有一个方法可以直接,启动项目的时候选择配置文件,
mvn install
java -jar 文件名.jar –spring.profiles.active=prod
上面后面可以带参数,这时候用的就是application-prod.yml

如果两个配置文件端口号不一样,可以用两个方法启动两个项目

6.使用过的注解说明

@SpringBootApplication // 这是一个组合注解

之前用户使用的是3个注解注解他们的main类。分别是@Configuration,@EnableAutoConfiguration,@ComponentScan。由于这些注解一般都是一起使用,spring boot提供了一个统一的注解@SpringBootApplication。

@SpringBootApplication = (默认属性)@Configuration + @EnableAutoConfiguration + @ComponentScan。

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

分开解释@Configuration,@EnableAutoConfiguration,@ComponentScan。

1、@Configuration:提到@Configuration就要提到他的搭档@Bean。使用这两个注解就可以创建一个简单的spring配置类,可以用来替代相应的xml配置文件。

<beans>
    <bean id = "car" class="com.test.Car">
        <property name="wheel" ref = "wheel"></property>
    </bean>
    <bean id = "wheel" class="com.test.Wheel"></bean>
</beans>

相当于:

@Configuration
public class Conf {
    @Bean
    public Car car() {
        Car car = new Car();
        car.setWheel(wheel());
        return car;
    }
    @Bean 
    public Wheel wheel() {
        return new Wheel();
    }
}

@Configuration的注解类标识这个类可以使用Spring IoC容器作为bean定义的来源。@Bean注解告诉Spring,一个带有@Bean的注解方法将返回一个对象,该对象应该被注册为在Spring应用程序上下文中的bean。

2、@EnableAutoConfiguration:能够自动配置spring的上下文,试图猜测和配置你想要的bean类,通常会自动根据你的类路径和你的bean定义自动配置。

3、@ComponentScan:会自动扫描指定包下的全部标有@Component的类,并注册成bean,当然包括@Component下的子注解@Service,@Repository,@Controller。

@Value

为了简化读取properties文件中的配置值,spring支持@value注解的方式来获取,这种方式大大简化了项目配置,提高业务中的灵活性。

两种使用方法

1、@Value(“#{configProperties[‘key’]}”)
这种形式的配置中有“configProperties”,其实它指定的是配置文件的加载对象
2、@Value(“${key}”)
这种形式不需要指定具体加载对象,这时候需要一个关键的对象来完成PreferencesPlaceholderConfigurer

@Componen

因为在持久层、业务层和控制层中,分别采用@Repository、@Service和@Controller对分层中的类进行注释,而用@Component对那些比较中立的类进行注释。

spring注解中@component就是说把这个类交给Spring管理,因为不清楚这个类是属于哪个层面,所以就用@Component。

@Controller // 处理http请求
@RestController // Spring4之后新加的注解,原来返回json需要@ResponseBody配合@Controller
@RequestMapping // 配置url映射

@Autowired

@Autowired是一种函数,可以对成员变量、方法和构造函数进行标注,来完成自动装配的工作,@Autowired标注可以放在成员变量上,也可以放在成员变量的set方法上。
这里必须明确:@Autowired是根据类型进行自动装配的,如果需要按名称进行装配,则需要配合@Qualifier使用。
这个注解就是spring可以自动帮你把bean里面引用的对象的setter/getter方法省略,它会自动帮你set/get。

@ConfigurationProperties

@ConfigurationProperties的大致作用就是通过它可以把properties或者yml配置直接转成对象
因为刚刚查到:
spring boot1.5以上版本@ConfigurationProperties取消location注解
所以请自行百度更多替代方案


其他注解

@PathVariable // 获取url中的数据
@RequestParam // 获取请求参数的值
@GetMapping // 组合注解,省略了method = RequestMethod.GET
@PostMapping // 组合注解,method = RequestMethod.POST

@PathVariable 在我看来就是方便restful结构
@RequestParam 这个参数传递使用,多参数也适用

7.Spring Boot 打包发布

  • 打成jar包
mvn -Dmaven.test.skip -U clean package

运行jar包

java -jar 文件名.jar
  • 打成war包

将pom.xml中的packageing值(默认:jar)改为war

<packaging>war</packaging>

在src——》main中新建
webapp——》WEB-INF——》web.xml
然后打包:

mvn -Dmaven.test.skip -U clean package

运行war包:

java -jar 文件名.war

war包也可以放到tomcat里面

8.Spring Boot整合MyBatis

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值