Spring基础

Spring的发展

xml配置 注解配置 Java配置

Spring模块:核心容器 AOP 消息 web 数据访问集成

常用的:@Component @Service @Repository @Controller @Configuration @Bean

AOP

相关注解

@EnableAspectJAutoProxy @Aspect @PoinCut @After @Before @BeforeThrowing @AtferThrowing @Around

切入点定义

execution(* com..*.* (...))

within(com.text.*)包下任意类

this(com.test.lntf)实现Intf接口的所有类或单个类

@within/target(com.xxx.Transactional)带有Transactional标注的所有类

@annotion(com.xxx.Transactional)带有Transactional标注的所有类的任意方法

@args(com.xxx.Transactional)参数是带有Transactional标注的所有类

args(String)参数类型

SCOPE

@Scope("prototype")或singleton Request Session

@Value(EL)

注入普通字符

操作系统属性

表达式结果

其他Bean属性

文件内容(Resource)

网址内容(Resource)

属性文件,注入配置文件需要使用@PropertySource指定文件地址

在使用@Value注入要配置PropertySourcesPlaceholderConfigurer的Bean

@Bean初始化和销毁

@Bean(initMethod="init", destroyMethod="destroy")

@Profile

指定profile

1、设定Environment的ActiveProfies

2、jvm的spring.profiles.active

3、servlet的context parameter

事件

1、自定义事件,继承ApplicationEvent

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

3、使用容器发布事件

Spring Aware

BeanNameAware

BeanFactoryAware AppiicationContextAware

MessageSourceAware

ApplicationEventPublisherAware

ResourceLoaderAware

继承上述接口,使用容器提供的功能

此外,可以直接以@Autowired方法向Bean注入

计划任务

1、配置类使用@EnablbeScheduling

2、方法上使用@Scheduled(fixedRate/fixedDelay/cron)

多线程

1、配置类使用@EnableAsync注解开启异步任务支持

2、配置类实现AsyncConfigurer接口并重写getAsyncExecutor方法,返回ThreadPoolTaskExecutor

3、方法上使用@Async,表明该方法是一个异步方法

测试

@RunWith

@ContextConfiguration

@ActiveProfiles

SPRINGMVC基础

搭建web项目

1、配置类使用@EnableWebMvc,可以继承WebMvcConfigureAdapter,重写其方法,完成SpringMVC的配置

2、实现WebApplicationInitializer接口,完成web配置

3、打包处理

public class WebInitializer implements WebApplicationInitializer {

    @Override
public void onStartup(ServletContext arg0) throws ServletException {
AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
ctx.register(MyMvcConfig.class);
ctx.setServletContext(arg0);
Dynamic servlet = arg0.addServlet("dispatcher", new DispatcherServlet(ctx));
servlet.addMapping("/");
servlet.setLoadOnStartup();
} } @Configuration
@EnableWebMvc
@ComponentScan
public class MyMvcConfig extends WebMvcConfigurerAdapter {
@Bean
public InternalResourceViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setPrefix("/WEB-INF/classes/views/");
viewResolver.setSuffix(".jsp");
viewResolver.setViewClass(JstlView.class);
return viewResolver;
} @Bean
public DemoInterceptor demoInterceptor() {
return new DemoInterceptor();
} @Bean
public MultipartResolver multipartResolver() {
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver();
multipartResolver.setMaxUploadSize();
return multipartResolver;
} @Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/assets/**").addResourceLocations("classpath:/assets/");
} @Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(demoInterceptor());
} @Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/index").setViewName("/index");
registry.addViewController("/toUpload").setViewName("/upload");
}
}

资源放于src/main/resource下,打包后会置于WEB/INF/下

常用注解

@Controller @RequestMapping @ResponseBody @RequestBody @PathVariable @RestController

@ControllerAdvice组成

@ExceptionHandler @ModelAttribute @InitBinder

HttpMessageConverter用于处理request和response数据

测试

@RunWith

@ContextConfiguration(MVC配置类)

@WebAppconfiguration(资源文件位置)

SpringBoot基础

测试

@RunWith

@SpringApplicationConfiguration

@WebAppConfiguration

入口@SpringBootApplication实际上开启了

Configuration

EnableAutoConfiguration

ComponentScan

利用类型安全配置@ConfigurationProperties

@ConfigurationProperties(prefix = "druid")
public class DruidProperties { private String url; ...
} @Configuration
@EnableConfigurationProperties(DruidProperties.class)
@ConditionalOnClass(DruidDataSource.class)
@ConditionalOnProperty(prefix = "druid", name = "url")
@AutoConfigureBefore(DataSourceAutoConfiguration.class)
public class JpaConfig {
@Autowired
private DruidProperties properties; @Bean
public DataSource dataSource() {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setUrl(properties.getUrl());
dataSource.setUsername(properties.getUsername());
dataSource.setPassword(properties.getPassword());
if (properties.getInitialSize() > ) {
dataSource.setInitialSize(properties.getInitialSize());
}
if (properties.getMinIdle() > ) {
dataSource.setMinIdle(properties.getMinIdle());
}
if (properties.getMaxActive() > ) {
dataSource.setMaxActive(properties.getMaxActive());
}
dataSource.setTestOnBorrow(properties.isTestOnBorrow());
try {
dataSource.init();
} catch (SQLException e) {
throw new RuntimeException(e);
}
return dataSource;
} @Bean
PlatformTransactionManager transactionManager() {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setDataSource(dataSource());
return transactionManager;
}
}

SPRINGBOOT 读书笔记的更多相关文章

  1. 【读书笔记】SpringBoot读书笔记

    整体目录结构: 一.入门 二.开发第一个应用程序 三.自定义配置 四.测试 五.Groovy与Spring Boot Cli 六.在Spring Boot中使用Grails 七.深入Actuator ...

  2. [读书笔记] 一、Spring boot项目搭建与配置文件

    读书笔记:[JavaEE开发的颠覆者 Spring Boot实战] 作者:汪云飞 从今天开始坚持读书,并记录下此读书笔记. 一,初接触 Spring boot 项目Hello world搭建 1.po ...

  3. 《精通Spring 4.X企业应用开发实战》读书笔记1-1(IoC容器和Bean)

    很长一段时间关注在Java Web开发的方向上,提及到Jave Web开发就绕不开Spring全家桶系列,使用面向百度,谷歌的编程方法能够完成大部分的工作.但是这种不系统的了解总觉得自己的知识有所欠缺 ...

  4. 《深入理解 Java 内存模型》读书笔记

    ![img](https://mmbiz.qpic.cn/mmbiz_jpg/1flHOHZw6RtPu3BNx3zps1JhSmPICRw7QgeOmxOfTbCT3RLgIo4qRpn6xL4qg ...

  5. 转《深入理解 Java 内存模型》读书笔记

    转:https://mp.weixin.qq.com/s/2hA6u4hLEPWlTPdD-XB-bg 前提 <深入理解 Java 内存模型>程晓明著,该书在以前看过一遍,现在学的东西越多 ...

  6. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

  7. 读书笔记--SQL必知必会18--视图

    读书笔记--SQL必知必会18--视图 18.1 视图 视图是虚拟的表,只包含使用时动态检索数据的查询. 也就是说作为视图,它不包含任何列和数据,包含的是一个查询. 18.1.1 为什么使用视图 重用 ...

  8. 《C#本质论》读书笔记(18)多线程处理

    .NET Framework 4.0 看(本质论第3版) .NET Framework 4.5 看(本质论第4版) .NET 4.0为多线程引入了两组新API:TPL(Task Parallel Li ...

  9. C#温故知新:《C#图解教程》读书笔记系列

    一.此书到底何方神圣? 本书是广受赞誉C#图解教程的最新版本.作者在本书中创造了一种全新的可视化叙述方式,以图文并茂的形式.朴实简洁的文字,并辅之以大量表格和代码示例,全面.直观地阐述了C#语言的各种 ...

随机推荐

  1. WebUploader上传文件(一)

    写在前面: 文件上传方式很多的,对于大文件的上传,在本次项目中也有涉及,主要是用了分片断点上传大文件.所以就去了解了一下WebUploader,先从简单的上传文件开始吧~ 在代码中写注释,这样看的比较 ...

  2. Linux主机SSH免密设置解析

    为了保证一台Linux主机的安全,所以我们每个主机登录的时候一般我们都设置账号密码登录.但是很多时候为了操作方便,我们都通过设置SSH免密码登录.那么该如何设置?是不是免密码登录就不安全了呢? 一.被 ...

  3. 安装eclipse时跳转到网页提示JRE Missing

    可能的原因:jdk与安装的eclipse不兼容,可能64位机器安装了32位的jdk,导致64位的eclipse不能识别.

  4. HTML状态码大全(301,404,500等)

    HTML状态码大全(301,404,500等)HTML状态码大全(301,404,500等)HTML状态码大全(301,404,500等)HTML状态码大全(301,404,500等) 这些状态码被分 ...

  5. ES6初体验

    开始学习ES6,打算走全栈这条路了,废话不多说,开始吧. 首先安装node环境,去node官网上面下载node最新版本的,我用的系统是window10,所以我只需要下一步下一步就行了,安装完成后打开c ...

  6. 基于 HTML5 WebGL 的 3D 场景中的灯光效果

    构建 3D 的场景除了创建模型,对模型设置颜色和贴图外,还需要有灯光的效果才能更逼真的反映真实世界的场景.这个例子我觉得既美观又代表性很强,所以拿出来给大家分享一下. 本例地址:http://www. ...

  7. 某次送温暖考试的 c题

    题目大意: 给定n个点的无根树,树上每个点都有一个非负的点权. 树上的路径的价值定义为树上路径的点权和-树上路径的点权最大值; 现在给定一个参数P询问有多少条路径的价值是P的倍数(注意单点也算路径,路 ...

  8. 手撕vue-cli配置文件——config篇

    最近一直在研究webpack,突然想看看vue-cli中的webpack是如何配置,查阅了很多相关的文章,所以也想出几篇关于vue-cli配置的东西.正所谓"工欲善其事必先利其器" ...

  9. php一篇入门

    <?php header("Content-type: text/html; charset=utf-8");//设置编码也可以通过html中的 head中的 <met ...

  10. [js高手之路] html5 canvas教程 - 绘制七巧板

    七巧板长什么样? 用canvas把他画出来,其实就是把这7个区域的图形,每个点的坐标找出来,再用moveTo, lineTo连线,设置不同的颜色即可. <head> <meta ch ...