Skip to content

Commit 7bb94bd

Browse files
committed
2 6 add annotation processing
1 parent 4dd8a52 commit 7bb94bd

7 files changed

Lines changed: 264 additions & 0 deletions

File tree

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package ru.javawebinar.topjava;
2+
3+
import org.springframework.context.ConfigurableApplicationContext;
4+
import org.springframework.context.support.ClassPathXmlApplicationContext;
5+
import ru.javawebinar.topjava.model.Role;
6+
import ru.javawebinar.topjava.model.User;
7+
import ru.javawebinar.topjava.web.user.AdminRestController;
8+
9+
import java.util.Arrays;
10+
11+
/**
12+
* Created by dimas on 03.12.16.
13+
*/
14+
public class SpringMain {
15+
public static void main(String[] args) {
16+
// java 7 Automatic resource management
17+
try (ConfigurableApplicationContext appCtx = new ClassPathXmlApplicationContext("spring/spring-app.xml")) {
18+
System.out.println("Bean definition names: " + Arrays.toString(appCtx.getBeanDefinitionNames()));
19+
AdminRestController adminUserController = appCtx.getBean(AdminRestController.class);
20+
adminUserController.create(new User(1, "userName", "email", "password", Role.ROLE_ADMIN));
21+
}
22+
}
23+
}
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package ru.javawebinar.topjava.repository.mock;
2+
3+
import org.slf4j.Logger;
4+
import org.slf4j.LoggerFactory;
5+
import org.springframework.stereotype.Repository;
6+
import ru.javawebinar.topjava.model.User;
7+
import ru.javawebinar.topjava.repository.UserRepository;
8+
9+
import java.util.Collections;
10+
import java.util.List;
11+
12+
/**
13+
* Created by dimas on 03.12.16.
14+
*/
15+
@Repository
16+
public class MockUserRepositoryImpl implements UserRepository {
17+
private static final Logger LOG = LoggerFactory.getLogger(MockUserRepositoryImpl.class);
18+
19+
@Override
20+
public boolean delete(int id) {
21+
LOG.info("delete " + id);
22+
return true;
23+
}
24+
25+
@Override
26+
public User save(User user) {
27+
LOG.info("save " + user);
28+
return user;
29+
}
30+
31+
@Override
32+
public User get(int id) {
33+
LOG.info("get " + id);
34+
return null;
35+
}
36+
37+
@Override
38+
public List<User> getAll() {
39+
LOG.info("getAll");
40+
return Collections.emptyList();
41+
}
42+
43+
@Override
44+
public User getByEmail(String email) {
45+
LOG.info("getByEmail " + email);
46+
return null;
47+
}
48+
}
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package ru.javawebinar.topjava.service;
2+
3+
import org.springframework.beans.factory.annotation.Autowired;
4+
import org.springframework.stereotype.Service;
5+
import ru.javawebinar.topjava.model.User;
6+
import ru.javawebinar.topjava.repository.UserRepository;
7+
import ru.javawebinar.topjava.util.exception.NotFoundException;
8+
9+
import java.util.List;
10+
11+
import static ru.javawebinar.topjava.util.ValidationUtil.checkNotFound;
12+
import static ru.javawebinar.topjava.util.ValidationUtil.checkNotFoundWithId;
13+
14+
/**
15+
* Created by dimas on 03.12.16.
16+
*/
17+
@Service
18+
public class UserServiceImpl implements UserService {
19+
20+
@Autowired
21+
private UserRepository repository;
22+
23+
@Override
24+
public User save(User user) {
25+
return repository.save(user);
26+
}
27+
28+
@Override
29+
public void delete(int id) {
30+
checkNotFoundWithId(repository.delete(id), id);
31+
}
32+
33+
@Override
34+
public User get(int id) throws NotFoundException {
35+
return checkNotFoundWithId(repository.get(id), id);
36+
}
37+
38+
@Override
39+
public User getByEmail(String email) throws NotFoundException {
40+
return checkNotFound(repository.getByEmail(email), "email=" + email);
41+
}
42+
43+
@Override
44+
public List<User> getAll() {
45+
return repository.getAll();
46+
}
47+
48+
@Override
49+
public void update(User user) {
50+
repository.save(user);
51+
}
52+
}
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package ru.javawebinar.topjava.web.user;
2+
3+
import org.springframework.beans.factory.annotation.Autowired;
4+
import org.slf4j.Logger;
5+
import org.slf4j.LoggerFactory;
6+
import ru.javawebinar.topjava.model.User;
7+
import ru.javawebinar.topjava.service.UserService;
8+
9+
import java.util.List;
10+
11+
/**
12+
* Created by dimas on 03.12.16.
13+
*/
14+
public abstract class AbstractUserController {
15+
protected final Logger LOG = LoggerFactory.getLogger(getClass());
16+
17+
@Autowired
18+
private UserService service;
19+
20+
public List<User> getAll() {
21+
LOG.info("getAll");
22+
return service.getAll();
23+
}
24+
25+
public User get(int id) {
26+
LOG.info("get " + id);
27+
return service.get(id);
28+
}
29+
30+
public User create(User user) {
31+
user.setId(null);
32+
LOG.info("create " + user);
33+
return service.save(user);
34+
}
35+
36+
public void delete(int id) {
37+
LOG.info("delete " + id);
38+
service.delete(id);
39+
}
40+
41+
public void update(User user, int id) {
42+
user.setId(id);
43+
LOG.info("update " + user);
44+
service.update(user);
45+
}
46+
47+
public User getByMail(String email) {
48+
LOG.info("getByEmail " + email);
49+
return service.getByEmail(email);
50+
}
51+
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package ru.javawebinar.topjava.web.user;
2+
3+
import org.springframework.stereotype.Controller;
4+
import ru.javawebinar.topjava.model.User;
5+
6+
import java.util.List;
7+
8+
/**
9+
* Created by dimas on 03.12.16.
10+
*/
11+
@Controller
12+
public class AdminRestController extends AbstractUserController {
13+
14+
@Override
15+
public List<User> getAll() {
16+
return super.getAll();
17+
}
18+
19+
@Override
20+
public User get(int id) {
21+
return super.get(id);
22+
}
23+
24+
@Override
25+
public User create(User user) {
26+
return super.create(user);
27+
}
28+
29+
@Override
30+
public void delete(int id) {
31+
super.delete(id);
32+
}
33+
34+
@Override
35+
public void update(User user, int id) {
36+
super.update(user, id);
37+
}
38+
39+
@Override
40+
public User getByMail(String email) {
41+
return super.getByMail(email);
42+
}
43+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package ru.javawebinar.topjava.web.user;
2+
3+
import org.springframework.stereotype.Controller;
4+
import ru.javawebinar.topjava.AuthorizedUser;
5+
import ru.javawebinar.topjava.model.User;
6+
7+
/**
8+
* Created by dimas on 03.12.16.
9+
*/
10+
@Controller
11+
public class ProfileRestController extends AbstractUserController {
12+
13+
public User get() {
14+
return super.get(AuthorizedUser.id());
15+
}
16+
17+
public void delete() {
18+
super.delete(AuthorizedUser.id());
19+
}
20+
21+
public void update(User user) {
22+
super.update(user, AuthorizedUser.id());
23+
}
24+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<beans xmlns="http://www.springframework.org/schema/beans"
2+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xmlns:context="http://www.springframework.org/schema/context"
4+
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
5+
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
6+
7+
<!--
8+
<bean class="ru.javawebinar.topjava.repository.mock.MockUserRepositoryImpl" id="mockUserRepository"/>
9+
10+
<bean class="ru.javawebinar.topjava.service.UserServiceImpl">
11+
<property name="repository" ref="mockUserRepository"/>
12+
</bean>
13+
-->
14+
15+
<context:annotation-config/>
16+
17+
<context:component-scan base-package="ru.javawebinar.**.repository"/>
18+
19+
<context:component-scan base-package="ru.javawebinar.**.service"/>
20+
21+
<context:component-scan base-package="ru.javawebinar.**.web"/>
22+
23+
</beans>

0 commit comments

Comments
 (0)