SpringBoot

不知道jar包的dependency怎么写的话

http://mvnrepository.com/

STS下载地址

https://spring.io/tools/sts/all

 

 

 

Spring IOC 容器(ApplicationContext) 负责创建bean ,并通过容器将功能类Bean注入到你需要的Bean中。

Spring 提供了4种方式实现Bean的创建和注入

XML配置

注解

Java配置

groovy配置

 

声明Bean的注解

@Component

组件

@Service

业务逻辑层

@Repository

数据访问层

@Controller

展现层

 

注入Bean的注解,可注解在Set方法上或属性上,建议注解在属性上,优点是代码更少,层次更清晰。

@Autowired

Spring提供的注解

@Inject

JSR-330提供的注解

@Resource

JSR-250提供的注解

 

 

@Configuration

声明当前类是一个配置类

@ComponentScan

使用它将自动扫描包名下所有使用@Component/@Service/@Repository/@Controller的类,并注册为Bean 

 

AnnotationConfigApplicationContext作为Spring 容器,接受输入一个配置类作为参数,获得声明配置的Bean。

AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(DiConfig.class);

UseFunctionService  useFunctionService = context.getBean(UserFunctionService.class;

 

 

Java配置

Java配置是Spring 4.X推荐的配置方式,可以完全替代XML配置;Java配置也是Spring Boot推荐的配置方式。

Java配置是通过@Configuration 和@Bean 来实现的。

 

如何使用Java配置或注解配置呢?

原则: 全局配置使用Java 配置(如数据库相关配置/MVC相关配置),业务Bean的配置使用注解配置(@Component/@Service/@Repository/@Controller)

 

AOP

AspectJ

@EnableAspectJAutoProxy 开启Spring对AspectJ的支持

使用@AspectJ声明一个切面

使用@After/@Before/@Around定义增强,可以直接将拦截规则(切点)作为参数

其中@After/@Before/@Around 参数的拦截规则为切点 (PointCut), 为了使切点复用,可使用@PointCut专门定义拦截规则,然后再@After/@Before/@Around的参数中使用

其中符合条件的每一个被拦截处为连接点(JoinPoint)

 

 

Spring EL-Spring 表达式语言,支持在xml和注解中使用表达式,类似于JSP的EL表达式语言。

 

@PropertySource("classpath:com/citi/highlight_sprint4/ch2/el/test.properties") 指定文件地址

 

Bean的初始化和销毁

 

Java配置方式: 使用@Bean的initMethod 和 destroyMethod,相当于xml配置的init-method 和 destory-method

注解方式: 利用JSR-250的@PostConstruct 和 @PreDestroy

 

 

Profile 为不同环境下使用不同的配置提供了支持

 

Spring 的事件(Application Event) 为Bean 与 Bean 之间的消息通信提供了支持。

1.自定义事件,继承ApplicationEvent.

2.自定义事件监听器,实现ApplicationListener

3.使用容器发布事件

 

Spring Aware 是Spring 设计用来框架内部使用的,若用了Spring Aware, 你的Bean就会合Spring 容器耦合。

SpringAware 的目的是为了让Bean获得Spring容器的服务。因为ApplicationContext接口集成了MessageSource接口/ApplicationEventPublisher接口/ResourceLoader接口,

所以Bean继承ApplicationContextAware可以获得Spring 容器的所有服务,但原则上还是用到什么接口就实现什么接口。

 

多线程,配置类实现AsyncConfigurer 接口并重写了getAsyncExecutor方法,返回ThreadPoolTaskExecutor, 这样我们就获得了一个基于线程池的TaskExecutor.

@EnableAsync

开启对异步任务的支持

@Async

声明其是一个异步任务

 

计划任务

@EnableScheduling

开启对计划任务的支持

@Scheduled

声明这是一个计划任务

 

条件注解

通过活动的profile,我们可以获得不同的Bean,Spring4提供了一个更通用的基于条件的Bean的创建,即使用@Conditional注解。

@Conditional ,根据满足某一个特定的条件创建一个特定的Bean. 比方说,当某一个Jar包在一个类路径下的时候,自动配置一个或多个Bean;或者只由某个Bean被创建才会创建另外一个Bean。总的来说,就是根据特定条件来控制Bean的创建行为,这样我们可以利用这个特性进行一些自动配置。

 

组合注解与原注解

 

@Enable* 注解的工作原理

1.直接导入配置类 @import(SchedulingConfiguration.class)

2.依据条件选择配置类

3.动态注册Bean. 在运行时自动添加Bean到已有的配置类。

 

测试

Spring通过Spring TestContext Framework对集成测试提供顶级支持。他不依赖于特定的测试框架,即可以使用JUnit也可以使用TestNG

1.Spring JUnitClassRunner在JUnit环境下提供SpringTetContext Framework 的功能。

2.@ContextConfiguration 用来加载配置ApplicationContext,其中classes属性用来加载配置类

3.@ActiveProfiles用来声名活动的Profile

4.可使用普通的@Autowired注入Bean

5.测试代码,通过Junitd 的Assert来校验是否和预期一致。

 

 

Spring MVC

@EnableWebMvc

开启Web MVC的配置支持

 

Sprign MVC 项目快速搭建,Sprint MVC 提供了一个DispatcherServlet来开发Web应用

Servlet 2.5及以下版本

在web.xml下配置<Servlet>元素即可

Servlet 3.0+无web.xml的配置

在Spring MVC 里实现WebApplicationInitializer 接口便可实现等同于web.xml的配置

 

在Spring MVC声明控制器Bean的时候,只能使用@Controller.

 

Spring MVC的定制配置需要我们的配置类继承一个WebMvcConfigurerAdapter类,并在此类使用@EnableWebMvc注解,来开启对SpringMvc的配置支持,

这样我们可以重写这个类的方法,完成我们的常用配置。

 

静态资源映射,重写addResourceHandlers(ResourceHandlerRegistry registry) 方法

Registry.addResourceHandler("/assets/**").addResourceLocations("classpath:/assets/");

addResourceLocations -- > 文件放置的目录

addResourceHandler --> 对外暴露的访问路径

 

拦截器

让普通的Bean实现HandlerInterceptor接口或者继承HandlerInterceptorAdapter类来实现自定义拦截器

通过重写WebMvcConfigurerAdapter的addInterceptors方法来注册自定义的拦截器

 

@ControllerAdvice

声明一个增强,它组合了@Component注解,所以自身会自动注解为springd的Bean

@ExceptionHandler(vvalue = Exception.class)

通过它的Value属性可过滤拦截的条件。在此我们拦截所有的Exception

@ModelAttribute

将键值对添加到全局,然后所有注解了@RequestMapping的方法可以获得此键值对

@InitBinder

通过它定制WebDataBinder

 

快捷的ViewController

对于只是简单的页面跳转的请求,我们可以在配置中重写addViewControllers来简化配置。

 

路径匹配参数配置

重写configurePathMatch

转载于:https://my.oschina.net/ysk/blog/897444

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值