springboot初学

一、前奏

springboot讲究的是零配置,所以在学习之前我们先看看spring的java配置。


二、Spring 4.x的新特性

1.spring中配置历程(说的是我自己使用的历程哦)

  • spring早期版本中比如我最初学习的时候是spring2.5,其中使用的是xml配置,但是此时已经支持部分使用注解,所以一般来讲有个说法是,应用的基本配置使用xml,业务配置用注解。(spring1.x我没用过,直接跳过了,哈哈)
  • spring3.x中,我也是按照应用配置使用xml,业务配置用注解。
  • spring4.x中,我才开始使用java配置的方式,说白了我也就是最近才开始使用这玩意。因为朋友给了我一个项目,我拿到手之后首先看了下web.xml,卧槽的,怎么啥配置都没有,最后才看到是使用java配置的方式,因为前段时间在搞dubbo,所以就没怎么去关注spring的特性,虽然我知道springboot的零配置。
    2.spring模块
    springboot初学_第1张图片
    Paste_Image.png

    spring使用简单的POJO(Plain Old java Object,即无任何限制的普通Java对象)进行企业级开发,每一个被Spring管理的Java对象都称之为Bean。

三、spring注解

1、声明Bean的注解(使用在类上)

  • @Component组件,没有明确的角色。
  • @Service在业务逻辑层(service)使用。
  • @Repository在数据访问层(dao)使用。
  • @Controller 在展现层使用(请求接口的入口类)。
    2、注入Bean的注解(使用在属性上,代表注入该类)
  • @Autowired:Spring提供的注解。
  • @Inject:JSR-330提供的注解。
  • @Resource:JSR-250提供的注解。
    3、声明配置类(使用在类上)
  • @Configuration:声明当前类是一个配置类,相当于Spring中的xml文件。
    4、指明扫描包的类(使用在类上)
  • @ComponentScan:使用这个注解指定包,然后Spring会自动扫描包下的所有@Controller , @Service,@Repository,@Component的类,并注册为Bean。
    5、指明返回一个Bean
  • @Bean:Bean注解在方法上,声明当前方法的返回值为一个Bean。
    6、面向切面的相关注解
  • @Aspect:声明是一个切面。
  • @PointCut:声明切点。
  • @After:声明一个建言,并使用@PointCut定义的切点。
  • @Before:声明一个建言,此建言直接使用拦截规则作为参数。
  • @Around:声明一个建言,环绕通知需要携带ProceedingJoinPoint类型的参数。
  • @AfterThrowing:抛异常之后。
  • @AfterReturning:方法正常结束后执行。
  • @Order:指定切面的优先级,值越小优先级越高。
    7、Bean创建的方式
  • @Scope("singleton"):代表全容器中只有这一个实例。
  • @Scope("Prototype"):每次调用新建一个实例。
    8、Spring EL表达式
  • @Value:注入普通字符串。
  • @Value("#{SystemProperties['os.name']}"):注入操作系统属性。
  • @Value("#{ T(java.lang.Math).random() * 100.0 }"):注入表达式结果。
  • @Value("#{demoService.id}"):注入其他Bean属性。
  • @Value("classpath:com/mouse/moon/test.txt"):注入资源文件。
  • @Value("http://www.baidu.com"):注入网址资源。
  • @Value("${book.name}"),需要跟下面一个注解联合使用。
  • @PropertySource("classpath:com/mouse/moon/test.properties"):指定文件地址。
    8、Spring Bean初始化及销毁
  • @PreDestory:在Bean销毁之前执行。
  • @PostConstruct:在Bean销毁之后执行。
  • @Bean(initMethod="init",destoryMethod="destory"):使用在类上,然后此类中需要要init()方法和destory()方法。
    9、设置不同的开发环境
  • @Profile:不同的环境下使用不同的配置。然后通过设定Enviroment的ActiveProfiles来设定当前context需要使用的配置环境
    10、异步方法
  • @EnableAsync:开启异步任务支持。
  • @Async:表明改方法是个异步方法
    11、计划任务
  • @Scheduled:声明该方法是计划任务。
  • @EnableScheduling:注解开启对计划任务的支持。
    12、基于条件创建Bean
  • @Conditional:根据满足某一个特定条件创建一个特等的Bean.

未完继续!!!

你可能感兴趣的:(springboot初学)