2.1.1 jar 包:java
此外,還加上commons-logging和log4j日誌包spring
2.1.2用idea建立工程 數組
2.1.3勾選自動生成目錄結構,不然要本身建立ide
2.1.4將jar包放入到項目中函數
2.1.5須要注意的是 若是是在test目錄裏面寫測試代碼,jar包必定也要添加到spring_test裏面去,否者會一直報錯建立不了bean的錯誤測試
a.在java下建立User類this
//1.建立對象 public class User { public void add(){ System.out.println("添加一個用戶"); } }
b. 在resources下建立bean1.xml,添加以下idea
<!--ioc入門--> <!--2.配置對象--> <bean id="user" class="com.xiaobo.Bean.User" scope="prototype"></bean>
c. 在 test目錄下建立TestIoc進行測試 ,點擊運行spa
//3.測試 public class TestIoc { @Test public void test(){ //加載xml文件 ApplicationContext ac=new ClassPathXmlApplicationContext("bean1.xml"); User user = (User) ac.getBean("user"); user.add(); } }
a.建立類prototype
/** * 構造函數注入 */ public class PropertyDemo1 { public PropertyDemo1(String name) { this.name = name; } private String name; public void test(){ System.out.println("my name is :"+this.name); } }
b.配置文件
<!--構造函數完成屬性注入--> <bean id="name" class="com.xiaobo.Property.PropertyDemo1"> <!--有參的構造函數,屬性注入--> <constructor-arg value="jack" name="name" /> </bean>
c.測試
@Test public void test(){ //加載xml文件 ApplicationContext ac=new ClassPathXmlApplicationContext("bean1.xml"); PropertyDemo1 user = (PropertyDemo1) ac.getBean("name"); user.test(); }
a.建立類
public class Book { public void setName(String name) { this.name = name; } private String name; public void test(){ System.out.println("書名爲: "+this.name); } }
b.配置文件
<!--set方法屬性注入--> <bean id="book" class="com.xiaobo.Property.Book"> <!--用set方法完成屬性注入,name爲類中的成員變量--> <property name="name" value="易經經"></property> </bean>
c.測試
@Test public void test(){ //加載xml文件 ApplicationContext ac=new ClassPathXmlApplicationContext("bean1.xml"); PropertyDemo1 user = (PropertyDemo1) ac.getBean("name"); user.test(); }
public class BookService { public void setBookDao(BookDao bookDao) { this.bookDao = bookDao; } private BookDao bookDao; public void add(){ bookDao.add(); } }
public class BookDao { public void add(){ System.out.println("添加書籍 "); } }
b.配置文件
<!--對對象的注入--> <bean id="bookDao" class="com.xiaobo.Property.BookDao"> </bean> <bean id="bookService" class="com.xiaobo.Property.BookService"> <!--ref是上面定義的--> <property name="bookDao" ref="bookDao"></property> </bean>
c.測試
@Test public void test3(){ //加載xml文件 ApplicationContext ac=new ClassPathXmlApplicationContext("bean1.xml"); BookService user = (BookService) ac.getBean("bookService"); user.add(); }
a.建立類
public class Person { public void setArr(String[] arr) { this.arr = arr; } public void setMap(Map<String, String> map) { this.map = map; } public void setList(List<String> list) { this.list = list; } private String[] arr; private Map<String,String> map; private List<String> list; public void test(){ System.out.println("arr is "+arr); System.out.println("map is "+map); System.out.println("list is "+list); } }
b.配置文件
<bean id="arr" class="com.xiaobo.Property.Person"> <!--數組的注入--> <property name="arr"> <list> <value>123</value> <value>234</value> <value>34</value> <value>123</value> </list> </property> <property name="list"> <list> <value>asd</value> <value>zc</value> <value>vfs</value> <value>ghj</value> </list> </property> <property name="map"> <map> <entry key="abc" value="123"/> <entry key="456" value="再來一次"/> <entry key="10010" value="電信"/> </map> </property> </bean>
c.測試
@Test public void test4(){ //加載xml文件 ApplicationContext ac=new ClassPathXmlApplicationContext("bean1.xml"); Person user = (Person) ac.getBean("arr"); user.test(); }
b.1 建立新的xml文件 , xml配置,下面的代碼會掃描具體包下的註解進行自動注入。
<!--開啓註解掃描 在包裏面屬性,方法,類,是否有註解 --> <context:component-scan base-package="com.xiaobo"></context:component-scan>
b.2類中的註解
//業務層使用userService註解 @Service(value = "userService") public class UserService { //使用了註解注入後就不用使用set方法了,比xml注入便捷許多 //使用Autowired自動注入 // @Autowired,只要是有UserDao這個類,就會注入,跟@Repository(value = "userDao")無關 // private UserDao userDao; //指定@Repository(value = "userDao")的類 @Resource(name = "userDao") private UserDao userDao; public void add(){ userDao.add(); } }
//持久層的註解爲Repository @Repository(value = "userDao") public class UserDao { public void add(){ System.out.println("UserDao add user"); } }
b.3測試
@org.junit.Test public void testService(){ ApplicationContext context=new ClassPathXmlApplicationContext("bean1.xml"); UserService user = (UserService) context.getBean("userService"); user.add(); }