spring自定义注解

spring注解开发-IOC

此生再无相见时 提交于 2020-02-01 15:31:40
1. @Configuration, @Bean @Configuration该注解就是用来告诉spring这是配置类 @Bean该注解是用来注册一个bean。类型是返回值的类型,ID默认是用方法名作为ID的;可以在注解中指定ID,@Bean("person") ApplicationContext applicationContext = new AnnotationConfigApplicationContext(MainConfig.class); //MainConfig.class是配置类 Person bean = applicationContext.getBean(Person.class); 以上注解主要是用来取代了配置文件application.xml中对bean的定义 2. @ComponentScan 该注解用于包扫描,主要是取代了下面的配置。主要扫描标记有以下注解的:@Controller、@Service、@Repository,@Component <context:component-scan base-package="com.atguigu" use-default-filters="false"></context:component-scan> 属性一:excludeFilters = Filter[]

Spring框架---概述(2)

早过忘川 提交于 2020-02-01 15:25:25
Spring 第二天笔记 1. 使用注解配置 Spring 入门 1.1. 说在前面 学习基于注解的 IoC 配置,大家脑海里首先得有一个认知,即注解配置和 xml 配置要实现的 功能都是一样的,都是要降低程序间的耦合。只是配置的形式不一样。 关于实际的开发中到底使用 xml 还是注解,每家公司有着不同的使用习惯。所以这两种配置方式我们都需要掌握。 基于注解配置的方式也已经逐渐代替 xml 。所以我们必须要掌握使用注解的方式配置 Spring 。 1.2. 配置步骤 注意: Eclipse 需要先安装了 STS 插件,或者使用 STS 开发工具创建项目。 1.2.1. 第一步:拷贝必备 jar 包到工程的 lib 目录。 注意:在基于注解的配置中,我们还要多拷贝一个 aop 的 jar 包。如下图: 1.2.2. 第二步:在类的根路径下创建一个任意名称的 xml 文件(不能是中文) 注意:基于注解整合时,Spring 配置文件 导入约束时需要多导入一个 context 名称空间下的约束 <?xml version= "1.0" encoding= "UTF-8" ?> <beans xmlns= "http://www.springframework.org/schema/beans" xmlns:p= "http://www.springframework.org/schema

ssm maven spring AOP读写分离

只谈情不闲聊 提交于 2020-02-01 09:06:28
ssm maven spring AOP读写分离 总体流程 配置最开始写在pom.xml文件,解析到数据库配置文件,再解析到spring配置文件。 自定义注解DataSource;通过这个注解并且在spring、springmv配置文件添加AOP拦截,去定义拦截函数,根据参数切换数据源。 即通过注解实现AOP拦截controller,或者service层。从而实现读写分离。 具体见代码和注释。 1,pom.xml 配置数据库部分 <profile> <id>local</id> <properties> <db-url><![CDATA[jdbc:mysql://XXX?autoReconnect=true&autoReconnectForPools=true&useUnicode=true&characterEncoding=utf8]]></db-url> <db-driverClassName>com.mysql.jdbc.Driver</db-driverClassName> <db-username>XXX</db-username> <db-password>XXX</db-password> <aliyun.oss.endpoint><![CDATA[oss-cn-beijing.aliyuncs.com]]></aliyun.oss.endpoint>

第二章 Spring bean实例化、IOC、循环依赖笔记

久未见 提交于 2020-02-01 05:56:17
一、 Bean的实例化过程 流程图地址: https://www.processon.com/view/link/5df87156e4b0cfc88c3c18c5 org.springframework.context.support.AbstractApplicationContext#refresh方法中 /* * 这个方法是spring中最重要的方法,没有之一 , 所以这个方法一定要理解要具体看 * 1、bean实例化过程 * 2、ioc * 3、注解支持 * 4、BeanPostProcessor的执行 * 5、Aop的入口 */ // Instantiate all remaining (non-lazy-init) singletons. finishBeanFactoryInitialization(beanFactory); 1、 BeanDefinitionRegistryPostProcessor接口 Refresh().invokeBeanFactoryPostProcessors这个方法里面。 BeanDefinitionRegistryPostProcessor这个接口的调用分为三部: 1)调用实现了PriorityOrdered排序接口 2)调用实现了Ordered排序接口 3)没有实现接口的调用 这个接口的理解

Spring(四)——ssh框架整合开发

守給你的承諾、 提交于 2020-02-01 01:47:54
概要 SSH三大框架整合 (1)struts2 (2)hibernate5.x (3)spring4.x 一、回顾SSH框架知识点 Hibernate框架 1 hibernate核心配置文件 (0)orm思想 – 对象关系映射 (1)数据库信息 (2)hibernate信息 (3)映射配置 (4)hibernate核心配置文件 – 如果单纯使用hibernate框架,核心配置文件名称 hibernate.cfg.xml和位置 src下面 固定的 – hibernate和spring整合时候,hibernate核心配置文件名称和位置没有固定要求的 2 hibernate映射配置文件 (1)实体类和数据库表映射关系—使用orm思想 3 hibernate操作的步骤 (1)在spring框架对hibernate框架进行封装,使用hibernateTemplate Struts2框架 1 Action操作 (1)action创建三种方式 继承类 ActionSupport (2)配置action访问路径 创建struts.xml配置文件,这个文件名称和位置固定 src下面的 (3)配置访问action的多个方法 使用通配符方式配置 (4)在action获取表单提交数据 获取request对象 ** 使用ServletActionContext类获取 属性封装 模型驱动(重点) 表达式封装

Spring Boot注解

做~自己de王妃 提交于 2020-01-31 04:56:01
文章目录 简介 @SpringBootApplication @EnableAutoConfiguration 条件自动配置 @ConditionalOnClass 和 @ConditionalOnMissingClass @ConditionalOnProperty @ConditionalOnResource @ConditionalOnWebApplication 和 @ConditionalOnNotWebApplication @ConditionalExpression @Conditional Spring Boot注解 简介 Spring Boot通过自动配置让我们更加简单的使用Spring。在本文中我们将会介绍org.springframework.boot.autoconfigure 和org.springframework.boot.autoconfigure.condition 里面经常会用到的一些注解。 @SpringBootApplication 首先我们看一下@SpringBootApplication: @SpringBootApplication public class AnotationApp { public static void main ( String [ ] args ) { SpringApplication . run (

【Spring】SpringMVC之异常处理

£可爱£侵袭症+ 提交于 2020-01-29 13:47:05
java中的异常分为两类,一种是运行时异常,一种是非运行时异常。在JavaSE中,运行时异常都是通过try{}catch{}捕获的,这种只能捕获显示的异常,通常项目上抛出的异常都是不可预见。那么我们能够有什么方法能够解决这种问题吗?当然有,SpringMVC中的异常处理机制就很好的做到了这一点。 SpringMVC中的异常处理一共有3种方式 (1)使用Spring MVC提供的简单异常处理器SimpleMappingExceptionResolver; (2)实现Spring的异常处理接口HandlerExceptionResolver 自定义自己的异常处理器; (3)使用@ExceptionHandler注解实现异常处理。 (1)使用Spring MVC提供的SimpleMappingExceptionResolver 直接将 SimpleMappingExceptionResolver 类配置到SpringMVC配置文件中 <!-- 只是对全局的Controller有效果 所有的被RequestMapping注解所添加的方法中的异常才有效果 --> <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <property name=

手写Spring和SpringMVC注解之实现

送分小仙女□ 提交于 2020-01-28 22:29:42
最近假期在家闲来无事,天天吃了喝,喝了睡,突然想起年前手写了个spring和springmvc。为了能够更容易让读者看懂,写了很多的注释,废话不多说,直接上代码。 git地址 https://github.com/985391294/tqz 1.创建一个maven项目,然后在pom文件里面添加servlet的jar包以及jetty服务器,如果对tomcat熟悉,也可以使用tomcat启动。 < ! -- servlet的依赖 -- > < dependencies > < ! -- https : / / mvnrepository . com / artifact / javax . servlet / javax . servlet - api -- > < dependency > < groupId > javax . servlet < / groupId > < artifactId > javax . servlet - api < / artifactId > < version > 4.0 .1 < / version > < scope > provided < / scope > < / dependency > < ! -- mysql驱动 -- > < dependency > < groupId > mysql < / groupId > <

WebApplicationContext介绍

纵饮孤独 提交于 2020-01-28 10:22:34
1.IOC 控制反转(Inversion of Control) 控制反转是一种设计原则,用来降低代码之间的耦合性。其中最常见的方式叫做 依赖注入 (DI)通过控制反转,对象在被创建的时候,系统内所有对象将通过配置文件(XML,JavaCode,注解等...)配置的依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。 容器(Container)容器的作用就是生成(生命周期开始时)、存放bean的实例并控制每个bean实例的生命周期 ,在适当的时候销毁bean实例(生命周期结束时)。 Spring 框架支持六个 作用域 ,其中四个只有在使用 Web 感知的 ApplicationContext 时才可用。也可以创建自定义范围。 作用域 描述 singleton (单例) (默认)SpringIoC容器为每个bean定义只创建一个对象实例 prototype (原型) 每次调用都将创建对象实例。 request (请求) 每次HTTP请求都会创建自己的bean实例。仅仅使用Web感知的ApplicationContext时才可用。 session (会话) 每个会话都会创建自己的bean实例。仅仅使用Web感知的ApplicationContext时才可用。 application (应用) 在ServletContext的生命周期中使用单个bean定义.

Spring与Spring Web的基础注解

自古美人都是妖i 提交于 2020-01-27 07:55:55
Spring基础注解 @Conditional:是Spring Boot中大量使用的注解之一,它可以根据是否满足某一个特定条件来决定是否加载指定的Bean。 @ComponentScan:该注解默认会扫描该类所在的包下所有的配置类,相当于xml中的context:component-scan。如果扫描到有@Component、@Controller、@Service等注解的类,将其注册为Bean,也可以自动收集所有的Spring组件,包括@Configuration类。Spring Boot中会扫描启动类所在包下以及子包下的使用了以上注解的类。 @Configuration:用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法。 @Profile:提供了一种隔离应用程序配置的方式,并让这些配置只能在特定的环境下生效。任何@Component或@Configuration都能被@Profile标记,从而限制加载它的时机。 @Import:用来导入其他配置类,作用就是和xml配置的import标签作用一样,允许通过它引入@Configuration注解的类(java config),Spring4.2以后也可以导入普通的Java并将其声明为一个bean。 @ImportResource:用来导入一个传统的xml配置文件。 @Autowired