Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。
关键点在于:
1,不在需要xml的配置文件。
2,依赖于像Maven或Gradle这样的构建系统。
注解的使用
@RestControler
代表使用restful得方式,直接返回给请求这json字符串,并且自带json数据转换/解析,通过spring-boot自带得jsckson。
@Table
当实体类与其映射的数据库表名不同名时需要使用 @Table 标注说明,一般使用其name属性,标注数据库表名,如果不标注,就以实体类名对应/生成数据库表,具体使用(忽略大小写)
@Table(name="CUSTOMERS")
@Entity
public class Customer
@EnableScheduling
@EnableScheduling 在配置类中来开启对计划任务的支持,在要执行计划任务的方法上注解@Scheduled,声明这是一个计划任务。
例如:
1,@Scheduled(fixedRate = 5000) //通过@Scheduled声明该方法是计划任务,使用fixedRate属性每隔固定时间执行
2,@Scheduled(cron = “0 07 20 ? * *” ) //使用cron属性可按照指定时间执行,本例指的是每天20点07分执行;
3,@Scheduled(cron = “0/20 * * * * ?”) // 每20秒执行一次
流程:
1,现在入口启动类上添加一个注解:@EnableScheduling 告知,定时任务已经开启注解的作用是发现注解@Scheduled的任务并后台执行。
2,在制作定时任务类和方法。
@Value
@Value("${application:jljjj}") 从属性配置文件中给字段注入值,如果配置文件中没有该变量值,那么就用:后面的值赋予
@NotBlank
只能作用在String类型的成员属性上,不能为null,而且调用trim()后,长度必须大于0。
如:@NotBlank(message = “username can’t empty!”) 里面的为描述性语句。
@ControllerAdvice
在spring boot中声明全局异常处理类 。
@ExceptionHandler(MultipartException.class)
在spring boot中的异常处理方法的声明,里面对应接收/处理的异常类型。
@Bean
@Bean(name=“mimi”) @Bean(id=“ll”):用@Bean标注方法等价于XML中配置bean。
@SpringBootApplication
综合注解,放在启动类上面,实现自动配置spring的作用。
@ResponseBody
一般在异步获取数据搜索时使用,在使用@RequestMapping后,返回值通常解析为跳转路径,在@Controller模式 加上@responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。 比如异步获取json数据,加上@responsebody后,会直接返回json数据,自动转换数据为json。
@ModelAttribute
引用其他大牛博客的解释,出处
http://blog.csdn.net/li_xiao_ming/article/details/8349115
http://blog.csdn.net/hejingyuan6/article/details/49995987
@Autowired与@Resource
用来装配bean. 都可以写在字段上,或写在setter方法上。
-
@Autowired默认按类型装配,属于spring。
默认情况下必须要求依赖对象必须存在(已经初始化到spring容器中),如果要允许null 值,可以设置它的required属性为false,如:@Autowired(required=false) 。
如果我们想使用名称装配可以结合@Qualifier注解进行使用:
@Autowired()
@Qualifier(“baseDao”)
private BaseDao baseDao; -
@Resource 默认安照名称进行装配,这个注解属于J2EE的。
名称可以通过name属性进行指定, 如果没有指定name属性,当注解写在字段上时,默认取字段名进行按照名称查找,如果注解写在setter方法上默认取属性名进行装配。
当找不到与名称匹配的bean时才按照类型进行装配。但是需要注意的是,如果name属性一旦指定,就只会按照名称进行装配:
@Resource(name=“baseDao”)
private BaseDao baseDao;
建议:@Resource注解在字段上,且这个注解是属于J2EE的,减少了与spring的耦合。
@Controller与@RestController
用来表示spring某个类的是否可以接收HTTP请求
1,@Controller标识一个Spring类是Spring MVC controller处理器。
2,@RestController是@Controller和@ResponseBody的结合体,两个标注合并起来的作用。
@Component 和@Configuration
1,Component 用于将所标注的类加载到 Spring 容器中,需要在启动器中搭配 @componentscan注解使用。
2,Configuration 是 Spring 3.X 后提供的注解,用于取代 XML 来配置 Spring。也就是配置一些内容。
@ConfigurationProperties
@ConfigurationProperties(locations = “classpath:application.properties”, prefix = “datasource”)
public class PropertyBean {
//自动给bean中的属性注入值,从application.properties文件中,当然也可以指定文件,可以指定路径。
@RequestMapping
@RequestMapping("/dd/{page}")
public String showPage(@PathVariable String page) {
return page;
}
这里/{page},是用来接收前端传递来的参数的,对应参数名为page的,并且通过@PathVariable 诛恶杰,来给参数赋值。注意,可能需要名称完全对应,注意,需要参数名称完全对应。
前端传递路径,如: localhost:8080/dd/具体值不需要name=value形式,直接填值就行。
注:
1,必须要有main方法,在启动类中,main作为程序得入口。
2,starters-web 中包含webmvc tomcat jackson等web特性依赖。
3,插件 boot-maven-plugin的作用:
-打包成可直接运行的jar。
-在使用main方法启动时必须要引入,命令行启动,就不需要了。
4,true 确定依赖尽在该项目中使用,其他子项目想要使用就需要单独引入。
5,JPA java持久化API的简称,在使用的时候,需要引入依赖,并且配置属性文件 application.properties。
1,配置数据源。
2,spring.jpa.hibernate.ddl-auto = update 自动进行DDL持久化更新操作,但是需要在实体类上加注解@Entity 。
6,默认配置情况下,启动类只扫描同包或者子包的类,这样才会起作用,其他包的类不会被配置,也不会被扫描。
7,如果出现NoSuchBeanDefinitionException ,那么就代表你自动装配的bean没有和启动类在同一个包中。
8,Thymealf-默认使用
-需要渲染html页面的时候,就需要模板引擎。
-可以看到Thymeleaf主要以属性的方式加入到html标签中,浏览器在解析html时,
当检查到未定义属性的标签时,就会忽略该标签。