@SpringBootApplication = (默認屬性)@Configuration + @EnableAutoConfiguration + @ComponentScan。mysql
@Configuration:提到@Configuration就要提到他的搭檔@Bean。使用這兩個註解就能夠建立一個簡單的spring配置類,能夠用來替代相應的xml配置文件。linux
@EnableAutoConfiguration:可以自動配置spring的上下文,試圖猜想和配置你想要的bean類,一般會自動根據你的類路徑和你的bean定義自動配置web
@AutoConfigureAfter:在指定的配置類初始化後再加載 @AutoConfigureBefore:在指定的配置類初始化前加載 @AutoConfigureOrder:數越小越先初始化
@ComponentScan:會自動掃描指定包下的所有標有@Component的類,並註冊成bean,固然包括@Component下的子註解@Service,@Repository,@Controller。spring
@Entity 對實體註釋。任何Hibernate映射對象都要有這個註釋sql
@Table聲明此對象映射到數據庫的數據表,經過它能夠爲實體指定表(table),目錄(Catalog)和schema的名字。該註釋不是必須的,若是沒有則系統使用默認值(實體的短類名)。數據庫
@EnableScheduling開啓計劃任務json
1@Scheduled:聲明該方法是一個計劃任務,fixedRate屬性設置每隔固定時間執行 2cron屬性:按照指定時間執行(11時28)cron事unix和類unix(linux)系統下的定時時間
@WebServlet,在 SpringBootApplication 上使用@ServletComponentScan 註解後,Servlet、Filter、Listener 能夠直接經過 @WebServlet、@WebFilter、@WebListener 註解自動註冊,無需其餘代碼。mvc
@Transactionalapp
解決Transactional註解不回滾: 1. 檢查你方法是否是public的。 2. 你的異常類型是否是unchecked異常。@Transactional(rollbackFor=Exception.class) 相似的還有norollbackFor,自定義不回滾的異常。 3. 數據庫引擎要支持事務,若是是mysql,注意表要使用支持事務的引擎,好比innodb,若是是myisam,事務是不起做用的。 4. 是否開啓了對註解的解析 <tx:annotation-driven transaction-manager="transactionManager" proxy-target class="true"/> 5. spring是否掃描到你這個包,以下是掃描到org.test下面的包<context:component-scan base-package="org.test" ></context:component-scan>
@Controller 用來響應頁面,@Controller必須配合模版來使用。異步
@RestController Spring4以後新加入的註解,原來返回json須要@ResponseBody和@Controller配合。
@RequestBody 將接收的json數據裝載到實體類中。
@RequestMapping 配置url映射
@PathVaribale 獲取url中的數據
@RequestParam 獲取請求參數的值
@RequestBody 用於接收實體類
@RequestAttribute 用於接收,被攔截後設置的屬性
@GetMapping 組合註解
@PostConstruct與@PreDestroy詳解及實例
@PostConstruct註釋的方法,會在構造方法以後,init方法以前進行調用。 只有一個方法可使用此註釋進行註解; 被註解方法不得有任何參數; 被註解方法返回值爲void; 被註解方法不得拋出已檢查異常; 被註解方法需是非靜態方法; 此方法只會被執行一次; PreDestroy 註釋做爲回調通知用於各方法,以表示該實例正處於被容器移除的過程當中。用 PreDestroy 註釋的方法一般用於釋放它已持有的資源。
@PropertySource 註解能夠從properties文件中,獲取對應的key-value值,將其賦予變量;
@ConfigurationProperties的大體做用就是經過它能夠把properties或者yml配置直接轉成對象。
@RunWith:這個是指定使用的單元測試執行類,這裏就指定的是SpringJUnit4ClassRunner.class;
@webservice:
類上加上@WebService註解 @WebMethod註解聲明瞭這個方法是要發佈出去的方法
@Resource 默認是按照名稱來裝配注入的,只有當找不到與名稱匹配的bean纔會按照類型來注入。它有兩個屬性是比較重要的:
①. name: Spring 將 name 的屬性值解析爲 bean 的名稱, 使用 byName 的自動注入策略 ②. type: Spring 將 type的屬性值解析爲 bean 的類型,使用 byType 的自動注入策略 注: 若是既不指定 name 屬性又不指定 type 屬性,Spring這時經過反射機制使用 byName 自動注入策略 @Resource 的裝配順序 1. 若是同時指定了 name 屬性和 type 屬性,那麼 Spring 將從容器中找惟一匹配的 bean 進行裝配,找不到則拋出異常 2. 若是指定了 name 屬性值,則從容器中查找名稱匹配的 bean 進行裝配,找不到則拋出異常 3. 若是指定了 type 屬性值,則從容器中查找類型匹配的惟一的 bean 進行裝配,找不到或者找到多個都會拋出異常 4. 若是都不指定,則會自動按照 byName 方式進行裝配, 若是沒有匹配,則回退一個原始類型進行匹配,若是匹配則自動裝配
@Autowried 默認是按照類型進行裝配注入,默認狀況下,它要求依賴對象必須存在,若是容許 null 值,能夠設置它 required 爲false。
若是咱們想要按名稱進行裝配的話,能夠添加一個 @Qualifier 註解解決。
demo @Autowried @Qualifier("adminDAO") private AdminDAO adminDAO;
@Async和@EnableAsync爲異步註解,放到方法上,表示調用該方法的線程與此方法異步執行,須要配合註解使用。@EnableAsync放在啓動類上,Async放在方法上。
@JsonInclude(Include.NON_NULL) 是springmvc中的標註,是爲了控制返回的json字符串顯示哪些字段。這裏的設置是爲null的字段不顯示
@ConfigurationProperties(prefix = "sso") 能夠在實體類中將properties文件的值注入到屬性中。