Java项目中使用spring (annotation)
本文使用的項目和 java 項目中使用 sping (XML) 文章所使用的項目完全一樣,annotation 相比于 XML 方式配置要更加方便快捷。 但是 XML 方式沒有侵入性, 更加符合 spring 的特性。?
先看一下項目結構吧:
?
然后是 Bean.xml 文件:
<?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"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><context:annotation-config/><context:component-scan base-package="com.dqpi.spring" /></beans>context:annotation-config 表示使用 annotation 配置,context:component-scan 表示掃描所有 com.dqpi.spring 包下有注解的類, 完成 bean 的裝配。
常用注解:
@Controller?定義控制層 Bean, 如 Action
@Service????定義業務層 Bean
@Repository??定義 DAO 層 Bean
@Component?定義組件 Bean,不用具體區分時使用。
User 模型類代碼:
@Component public class User {private int age;private String name;public int getAge () {return age;}@Value ("20")public void setAge (int age) {this.age = age;}public String getName () {return name;}@Value ("大白")public void setName (String name) {this.name = name;} }其中 @Value 注解是給變量賦值,可以寫在成員屬性上也可以寫在 set 方法上。
UserDao 接口
public interface UserDAO {public void save (User user);}UserDAOImp1 實現類
@Component public class UserDAOImp1 implements UserDAO {@Overridepublic void save (User user) {System.out.println ("使用 MySQL 數據庫");System.out.println (user.getName ());}}UserDAOImp2 實現類
@Component public class UserDAOImp2 implements UserDAO {@Overridepublic void save (User user) {System.out.println ("使用 Oracl 數據庫");}}Userservice 業務類
@Component public class Userservice {private UserDAO userDAO;private User user;public UserDAO getUserDAO () {return userDAO;}@Resource (name="userDAOImp1")public void setUserDAO (UserDAO userDAO) {this.userDAO = userDAO;}public User getUser () {return user;}@Resourcepublic void setUser (User user) {this.user = user;}public void add () {this.userDAO.save (user);}}@Resource 是 JSR-250 提供的標準,是由甲骨文收購 java 后提出的。@Resource 注解默認按名稱裝配,當找不到名稱匹配的 bean 再按類型裝配.
還有一種自動裝配的注解,就是 @Autowired ,它默認按類型匹配,自動裝配 (Srping 提供的)。當找到多個符合類型出錯時,可以使用 @Qualifier 解決:
@Autowired
@Qualifier ("bean 的名字")?
UserMain 啟動方法
public static void main (String [] args) {ApplicationContext context =new ClassPathXmlApplicationContext ("Bean.xml");Userservice userservice =context.getBean ("userservice",Userservice.class);userservice.add ();}?
執行結果:
?
總結
以上是生活随笔為你收集整理的Java项目中使用spring (annotation)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 疯狂英语超级三最宝典
- 下一篇: java链表模型_Java数据结构和算法