❶ Spring 常用注解大全
@Controller:组合注解(组合了@Component注解),应用在Controller层(控制层)。 @Service:组合注解(组合了@Component注解),应用在Service层(业务逻辑层)。 @Reponsitory:组合注解(组合了@Component注解),应用在Dao层(数据访问层)。 @Component:表示类是一个“组件”,成为Spring管理的Bean。同时@Component还是一个元注解。 @Autowired:Spring提供的工具(由Spring的依赖注入工具BeanPostProcessor或BeanFactoryPostProcessor自动注入)。 @Resource:JSR-250提供的注解。 @Inject:JSR-330提供的注解。 @Configuration:声明当前类是一个配置类(相当于一个Spring配置文件)。 @ComponentScan:自动扫描指定包下所有使用@Service,@Component,@Controller,@Repository的类并注册。 @Bean:注解在方法上,声明当前方法的返回值为一个Bean。返回的Bean对应的类中可以定义init()方法和destroy()方法,然后在@Bean(initMethod=”init”, destroyMethod=”destroy”)定义,在构造之后执行init,在销毁之前执行destroy。 @Aspect:声明一个切面。 @After:后置建言(advice),在原方法前执行。 @Before:前置建言(advice),在原方法后执行。 @Around:环绕建言(advice),在原方法执行前执行,在原方法执行后再执行。 @PointCut:声明切点,即定义拦截规则,确定有哪些方法会被切入。 @Transactional:声明事务(一般默认配置即可满足要求,当然也可以自定义)。 @Cacheable:声明数据缓存。 @EnableAspectJAutoProxy:开启Spring对AspectJ的支持。 @Value:值得注入。经常与Sping EL表达式语言一起使用,注入普通字符,系统属性,表达式运算结果,其他Bean的属性,文件内容,网址请求内容,配置文件属性值等。 @PropertySource:指定文件地址。提供了一种方便的、声明性的机制,用于向Spring的环境添加PropertySource。与@Configuration类一起使用。 @PostConstruct:标注在方法上,该方法在构造函数执行完成之后执行。 @PreDestroy:标注在方法上,该方法在对象销毁之前执行。 @Profile:表示当一个或多个指定的文件是活动的时,一个组件是有资格注册的。使用@Profile注解类或者方法,达到在不同情况下选择实例化不同的Bean。@Profile(“dev”)表示为dev时实例化。 @EnableAsync:开启异步任务支持。注解在配置类上。 @Async:注解在方法上表示这是一个异步方法,在类上表示这个类所有的方法都是异步方法。 @EnableScheling:注解在配置类上,开启对计划任务的支持。 @Scheled:注解在方法上,声明该方法是计划任务。支持多种类型的计划任务:cron,fixDelay,fixRate。 @Conditional:根据满足某一特定条件创建特定的Bean。 @Enable*:通过简单的@Enable*来开启一项功能的支持。所有@Enable*注解都有一个@Import注解,@Import是用来导入配置类的,这也就意味着这些自动开启的实现其实是导入了一些自动配置的Bean。 @RunWith:这个是Junit的注解,SpringBoot集成了junit。一般在测试类里使用:@RunWith(SpringJUnit4ClassRunner.class) — SpringJUnit4ClassRunner在JUnit环境下提供Sprng TestContext Framework的功能 @ContextConfiguration:用来加载配置ApplicationContext,其中classes属性用来加载配置类:@ContextConfiguration(classes = {TestConfig.class(自定义的一个配置类)}) @ActiveProfiles:用来声明活动的profile–@ActiveProfiles(“prod”(这个prod定义在配置类中)) @EnableWebMvc:用在配置类上,开启SpringMvc的Mvc的一些默认配置:如ViewResolver,MessageConverter等。同时在自己定制SpringMvc的相关配置时需要做到两点:1:配置类继承WebMvcConfigurerAdapter类,2:就是必须使用这个@EnableWebMvc注解。 @RequestMapping:用来映射web请求(访问路径和参数),处理类和方法的。可以注解在类和方法上,注解在方法上的@RequestMapping路径会继承注解在类上的路径。同时支持Serlvet的request和response作为参数,也支持对request和response的媒体类型进行配置。其中有value(路径),proces(定义返回的媒体类型和字符集),method(指定请求方式)等属性。 @ResponseBody:将返回值放在response体内。返回的是数据而不是页面 @RequestBody:允许request的参数在request体中,而不是在直接链接在地址的后面。此注解放置在参数前。 @PathVariable:放置在参数前,用来接受路径参数。 @RestController:组合注解,组合了@Controller和@ResponseBody,当我们只开发一个和页面交互数据的控制层的时候可以使用此注解。 @ControllerAdvice:用在类上,声明一个控制器建言,它也组合了@Component注解,会自动注册为Spring的Bean。 @ExceptionHandler:用在方法上定义全局处理,通过他的value属性可以过滤拦截的条件:@ExceptionHandler(value=Exception.class)–表示拦截所有的Exception。 @ModelAttribute:将键值对添加到全局,所有注解了@RequestMapping的方法可获得次键值对(就是在请求到达之前,往model里addAttribute一对name-value而已)。 @InitBinder:通过@InitBinder注解定制WebDataBinder(用在方法上,方法有一个WebDataBinder作为参数,用WebDataBinder在方法内定制数据绑定,例如可以忽略request传过来的参数Id等)。 @WebAppConfiguration:一般用在测试上,注解在类上,用来声明加载的ApplicationContext是一个WebApplicationContext。他的属性指定的是Web资源的位置,默认为src/main/webapp,我们可以修改为:@WebAppConfiguration(“src/main/resources”)。 @EnableAutoConfiguration:此注释自动载入应用程序所需的所有Bean——这依赖于Spring Boot在类路径中的查找。该注解组合了@Import注解,@Import注解导入了类,它使用SpringFactoriesLoader.loaderFactoryNames方法来扫描具有META-INF/spring.factories文件的jar包。而spring.factories里声明了有哪些自动配置。 @SpingBootApplication:SpringBoot的核心注解,主要目的是开启自动配置。它也是一个组合注解,主要组合了@Configurer,@EnableAutoConfiguration(核心)和@ComponentScan。可以通过@SpringBootApplication(exclude={想要关闭的自动配置的类名.class})来关闭特定的自动配置。 @ImportResource:虽然Spring提倡零配置,但是还是提供了对xml文件的支持,这个注解就是用来加载xml配置的。例:@ImportResource({“classpath @ConfigurationProperties:将properties属性与一个Bean及其属性相关联,从而实现类型安全的配置。例:@ConfigurationProperties(prefix=”authot”, locations={“classpath @ConditionalOnBean:条件注解。当容器里有指定Bean的条件下。 @ConditionalOnClass:条件注解。当类路径下有指定的类的条件下。 @ConditionalOnExpression:条件注解。基于SpEL表达式作为判断条件。 @ConditionalOnjava:条件注解。基于JVM版本作为判断条件。 @ConditionalOnJndi:条件注解。在JNDI存在的条件下查找指定的位置。 @ConditionalOnMissingBean:条件注解。当容器里没有指定Bean的情况下。 @ConditionalOnMissingClass:条件注解。当类路径下没有指定的类的情况下。 @:条件注解。当前项目不是web项目的条件下。 @ConditionalOnResource:条件注解。类路径是否有指定的值。 @ConditionalOnSingleCandidate:条件注解。当指定Bean在容器中只有一个,后者虽然有多个但是指定首选的Bean。 @ConditionalOnWebApplication:条件注解。当前项目是web项目的情况下。 @EnableConfigurationProperties:注解在类上,声明开启属性注入,使用@Autowired注入。例:@EnableConfigurationProperties(HttpEncodingProperties.class)。 @AutoConfigureAfter:在指定的自动配置类之后再配置。例:@AutoConfigureAfter(WebMvcAutoConfiguration.class)。 转自:https://www.cnblogs.com/alter888/p/9083963.html
❷ springboot核心注解是什么
1、##@SpringBootConfiguration:读取配置文件,配置文件的路径是当前根目录(src/main/resources/application.yml等)。
2、##EnableAutoConfiguration:开启自动配置,扫描当前的所有依赖的jar包,发现新的依赖出现将会将会根据依赖完各种自动配置。
内容提要
本书是《Spring Boot编程思想》的核心篇,开篇总览Spring Boot核心特性,接着讨论自动装配(Auto-Configuration)与SpringApplication。《Spring Boot编程思想(核心篇)》的讨论以Spring Boot为中心,议题发散至Spring技术栈、JSR及Java。
希望透过全局的视角,帮助读者了解Spring Boot变迁的历程;经过多方的比较,帮助读者理解Spring Boot特性的原理;整合标准的规范,帮助读者掌握Spring Boot设计的哲学。
❸ spring中如何使用注解来配置bean有哪些相关的注解
答:首先需要在Spring配置文件中增加如下配置:1 <context:component-scan base-package="org.example"/> 然后可以用@Component、@Controller、@Service、@Repository注解来标注需要由Spring IoC容器进行对象托管的类。这几个注解没有本质区别,只不过@Controller通常用于控制器,@Service通常用于业务逻辑类,@Repository通常用于仓储类(例如我们的DAO实现类),普通的类用@Component来标注。
❹ 项目中使用spring配置文件好,还是注解好
看情况吧,配置是将信息绑定在对象上,注解是绑定在类上,哪种方便用哪种。spring一般是应用启动时解析xml或者反射读取类注解信息,与运行时的效率关系不大。
❺ springboot三大核心注解是什么
springboot三大核心注解是Configuration,EnableAuto,ComponentScan。SpringBoot最大的特点是无需XML配置文件,能自动扫描包路径装载并注入对象,并能做到根据classpath下的jar包自动配置。
springboot三大核心注解特点
Configuration就要提到他的搭档@Bean,使用这两个注解就可以创建一个简单的spring配置类,可以用来替代相应的xml配置文件,这个注解类标识这个类可以使用SpringIoC容器作为bean定义的来源。
@Bean注解告诉Spring一个带有@Bean的注解方法将返回一个对象,该对象应该被注册为在Spring应用程序上下文中的bean,能够自动配置spring的上下文,试图猜测和配置你想要的bean类,通常会自动根据你的类路径和你的bean定义自动配置。
❻ spring整合mybatis怎样配置注解
mybatis和spring的整合步骤:1)使用mybatis,必须有个全局配置文件configuration.xml,来配置mybatis的缓存,延迟加载等等一系列属性,该配置文件示例如下: Java代码 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-config.dtd"> <configuration> <settings> <!– 全局映射器启用缓存 –> <setting name="cacheEnabled" value="true" /> <!– 查询时,关闭关联对象即时加载以提高性能 –> <setting name="lazyLoadingEnabled" value="true" /> <!– 设置关联对象加载的形态,此处为按需加载字段(加载字段由SQL指 定),不会加载关联表的所有字段,以提高性能 –> <setting name="aggressiveLazyLoading" value="false" /> <!– 对于未知的SQL查询,允许返回不同的结果集以达到通用的效果 –> <setting name="multipleResultSetsEnabled" value="true" /> <!– 允许使用列标签代替列名 –> <setting name="useColumnLabel" value="true" /> <!– 允许使用自定义的主键值(比如由程序生成的UUID 32位编码作为键值),数据表的PK生成策略将被覆盖 –> <setting name="useGeneratedKeys" value="true" /> <!– 给予被嵌套的resultMap以字段-属性的映射支持 –> <setting name="autoMappingBehavior" value="FULL" /> <!– 对于批量更新操作缓存SQL以提高性能 –> <setting name="defaultExecutorType" value="BATCH" /> <!– 数据库超过25000秒仍未响应则超时 –> <setting name="defaultStatementTimeout" value="25000" /> </settings> <!– 全局别名设置,在映射文件中只需写别名,而不必写出整个类路径 –> <typeAliases> <typeAlias alias="TestBean" type="com.wotao.taotao.persist.test.dataobject.TestBean" /> </typeAliases> <!– 非注解的sql映射文件配置,如果使用mybatis注解,该mapper无需配置,但是如果mybatis注解中包含@resultMap注解,则mapper必须配置,给resultMap注解使用 –> <mappers> <mapper resource="persist/test/orm/test.xml" /> </mappers> </configuration> 2)该文件放在资源文件的任意classpath目录下,假设这里就直接放在资源根目录,等会spring需要引用该文件。 查看ibatis-3-config.dtd发现除了settings和typeAliases还有其他众多元素,比如properties,objectFactory,environments等等,这些元素基本上都包含着一些环境配置,数据源定义,数据库事务等等,在单独使用mybatis的时候非常重要,比如通过以构造参数的形式去实例化一个sqlsessionFactory,就像这样: Java代码 SqlSessionFactory factory = sqlSessionFactoryBuilder.build(reader); SqlSessionFactory factory = sqlSessionFactoryBuilder.build(reader, properties); SqlSessionFactory factory = sqlSessionFactoryBuilder.build(reader, environment, properties); 而typeHandlers则用来自定义映射规则,如可以自定义将Character映射为varchar,plugins元素则放了一些拦截器接口。2)在spring配置文件中指定c3p0数据源定义如下: Java代码 <!– c3p0 connection pool configuration –> <bean id="testDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <!– 数据库驱动 –> <property name="driverClass" value="${db.driver.class}" /> <!– 连接URL串 –> <property name="jdbcUrl" value="${db.url}" /> <!– 连接用户名 –> <property name="user" value="${db.username}" /> <!– 连接密码 –> <property name="password" value="${db.password}" /> <!– 初始化连接池时连接数量为5个 –> <property name="initialPoolSize" value="5" /> <!– 允许最小连接数量为5个 –> <property name="minPoolSize" value="5" /> <!– 允许最大连接数量为20个 –> <property name="maxPoolSize" value="20" /> <!– 允许连接池最大生成100个PreparedStatement对象 –> <property name="maxStatements" value="100" /> <!– 连接有效时间,连接超过3600秒未使用,则该连接丢弃 –> <property name="maxIdleTime" value="3600" /> <!– 连接用完时,一次产生的新连接步进值为2 –> <property name="acquireIncrement" value="2" /> <!– 获取连接失败后再尝试10次,再失败则返回DAOException异常 –> <property name="acquireRetryAttempts" value="10" /> <!– 获取下一次连接时最短间隔600毫秒,有助于提高性能 –> <property name="acquireRetryDelay" value="600" /> <!– 检查连接的有效性,此处小弟不是很懂什么意思 –> <property name="testConnectionOnCheckin" value="true" /> <!– 每个1200秒检查连接对象状态 –> <property name="idleConnectionTestPeriod" value="1200" /> <!– 获取新连接的超时时间为10000毫秒 –> <property name="checkoutTimeout" value="10000" /> </bean> 配置中的${}都是占位符,在指定数据库驱动打war时会自动替换,替换的值在父pom中配置。3)需要一个sessionFactory来生成session,sessionFactory配置如下: Java代码 <bean id="testSqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="configLocation" value="classpath:configuration.xml" /> <property name="dataSource" ref="testDataSource" /> </bean> 4)配置一个映射器接口来对应sqlSessionTemplate,该映射器接口定义了接口方法:Java代码 <!– data OR mapping interface –> <bean id="testMapper" class="org.mybatis.spring.mapper.MapperFactoryBean"> <property name="sqlSessionFactory" ref="testSqlSessionFactory" /> <property name="mapperInterface" value="com.wotao.taotao.persist.test.mapper.TestMapper" /> </bean> 5)至此,一个完整的myabtis整合spring的配置文件看起来应该如下所示: Java代码 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"> <!– c3p0 connection pool configuration –> <bean id="testDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="driverClass" value="${db.driver.class}" /> <property name="jdbcUrl" value="${db.url}" /> <property name="user" value="${db.username}" /> <property name="password" value="${db.password}" /> <property name="initialPoolSize" value="5" /> <property name="minPoolSize" value="5" /> <property name="maxPoolSize" value="20" /> <property name="maxStatements" value="100" /> <property name="maxIdleTime" value="3600" /> <property name="acquireIncrement" value="2" /> <property name="acquireRetryAttempts" value="10" /> <property name="acquireRetryDelay" value="600" /> <property name="testConnectionOnCheckin" value="true" /> <property name="idleConnectionTestPeriod" value="1200" /> <property name="checkoutTimeout" value="10000" /> </bean> <bean id="testSqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="configLocation" value="classpath:configuration.xml" /> <property name="dataSource" ref="testDataSource" /> </bean> <!– data OR mapping interface –> <bean id="testMapper" class="org.mybatis.spring.mapper.MapperFactoryBean"> <property name="sqlSessionFactory" ref="testSqlSessionFactory" /> <property name="mapperInterface" value="com.wotao.taotao.persist.test.mapper.TestMapper" /> </bean> <!– add your own Mapper here –> <!– comment here, using annotation –> <!– <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate"> –> <!– <constructor-arg index="0" ref="sqlSessionFactory" /> –> <!– </bean> –> <!– base DAO class, for mole business, extend this class in DAO –> <!– <bean id="testBaseDAO" class="com.test..TestBaseDAO"> –> <!– <property name="sqlSessionTemplate" ref="sqlSessionTemplate" /> –> <!– </bean> –> <!– <bean id="testDAO" class="com.test..impl.TestDAOImpl" /> –> <!– you can DI Bean if you don't like use annotation –> </beans>
❼ Configuration注解是springboot注解吗
是。SpringBootConfiguration是SpringBoot项目的配置注解,这也是一个组合注解,SpringBootConfiguration注解可以用java代码的形式实现spring中xml配置文件配置的效果。
❽ 如何spring使用@value注解读取配置文件的值
首先在spring的核心配置文件中加载 参数配置文件然后@Value("${xxx}") private String xxx
❾ springboot三大核心注解是什么
springboot三大核心注解是@Configuration,@EnableAutoConfiguration和@ComponentScan。提到@Configuration就要提到他的搭档@Bean,使用这两个注解就可以创建一个简单的spring配置类,可以用来替代相应的xml配置文件。
springboot三大核心注解的特点
这个注解类标识这个类可以使用SpringIoC容器作为bean定义的来源,@Bean注解告诉Spring,一个带有@Bean的注解方法将返回一个对象,该对象应该被注册为在Spring应用程序上下文中的bean。
能够自动配置spring的上下文,试图猜测和配置你想要的bean类,通常会自动根据你的类路径和你的bean定义自动配置,会自动扫描指定包下的全部标有@Component的类,并注册成bean,当然包括@Component下的子注解@Service,@Repository和@Controller。
❿ spring常用的注解有哪些
《spring常用的注解》网络网盘资源下载链接: https://pan..com/s/1P_qMkdFGYQA3rGFkSlHxgA
提取码: ida4
注解本身没有功能的,就和 xml 一样。注解和 xml 都是一种元数据,元数据即解释数据的数据,这就是所谓配置。本文主要罗列 Spring|Spring MVC相关注解的简介。